diff --git a/README.jp.md b/README.jp.md index 15a781a..250062a 100644 --- a/README.jp.md +++ b/README.jp.md @@ -1,59 +1,144 @@ # addframe -[English](README.md) +[English README](README.md) -## これは何なのか? - デジタルスチールカメラで撮影した写真のサイズを縮小し、フレームを追加した写真に変換します。 - フレーム下部にはExifから取得した著作権、メーカー、カメラ、レンズ、撮影データがプリントされます。 +## これは何? + デジタルカメラで撮影した写真を縮小し、フレームを付けた写真に変換します。 + フレーム下部に Exif から取得した著作権者名、メーカー、カメラ、レンズ、撮影データがプリントされます。 +example of addframe's result -## 他に必要なもの +## 必要な他のソフトウェア * [ExifTool](https://exiftool.org/) * [ImageMagick](https://imagemagick.org/) ## セットアップ ### addframe のインストール -#### go install を使う方法 +#### go install によるインストール ``` go install github.com/mitsugu/addframe@ ``` -#### リリース zip ファイルを使う方法 -1. [リリース zip ファイル](https://github.com/mitsugu/addframe/releases) をダウンロードしてください。 -2. zip ファイルを展開してください。 -3. 任意のディレクトリに置いてください。 -4. addframe のディレクトリにパスを通してください。またはは addframe の実行可能ファイルをパスが通っているディレクトリに置いてください。 +#### リリースされている zip ファイルによるインストール +1. [最新のリリース zip ファイル](https://github.com/mitsugu/addframe/releases) をダウンロードする。 +2. zip ファイルを展開する。 +3. Linux 版、MacOS 版は addframe にリネームする。 +4. 実行ファイルを任意のディレクトリに置く。 +5. addframe が置かれたディレクトリへのパスを通します。あるいは addframe 実行可能ファイルをパスが通ったディレクトリに置きます。 ### addframe.json を編集する ``` -// addframe.json の例 +// addframe.json example { + "path": { + "imagemagick": "/path/to//magick", + "exiftool": "/bin/exiftool" + }, "length": 1280, - "top": 32, - "left": 32, - "right": 32, - "bottom": 128, - "font": "path/to/font.ttf", - "fontColor": "white", - "frameColor": "#3f3f3f", - "imagemagick": "path/to/magick", - "exiftool": "path/to/exiftool" + "frame": { + "top": 32, + "left": 32, + "right": 32, + "bottom": 128, + "color": "#3f3f3f" + }, + "text": { + "direction": "South", + "margin": 0, + "dpi": 96, + "element": [{ + "font": "/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc", + "color": "white", + "size": 24, + "margintop": 32, + "marginbottom": 4 + }, { + "font": "/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc", + "color": "white", + "size": 24, + "margintop": 4, + "marginbottom": 4 + }, { + "font": "/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc", + "color": "#cfcfcf", + "size": 16, + "margintop": 4, + "marginbottom": 4 + }] + } } ``` -1. font には ttf または otf フォント ファイルへのパスを指定します。ユーザーの環境に合わせて**指定しなければなりません**。 -2. imagemagick には、ImageMagick の magick コマンドへのパスを指定します。ユーザーの環境に合わせて**指定しなければなりません**。 -3. exiftool は、exiftool コマンドへのパスを指定します。ユーザーの環境に合わせて**指定しなければなりません**。 -4. fontColor にユーザーが希望するフォントの色を**指定することができます**。カスケードスタイルシートと同様の方法で指定できます。詳細は [ImageMagick Color Names](https://imagemagick.org/script/color.php) を参照してください。 -5. FrameColor は、ユーザーの希望するフレームの色を**指定することができます**。カスケードスタイルシートと同様の方法で指定できます。詳細は[ImageMagick Color Names](https://imagemagick.org/script/color.php) を参照してください。フォントが目立たせ画像を引き立たせる色を選ぶのがコツです。 +1. **path.imagemagick** +ImageMagick の magick コマンドへのパス。絶対パスと相対パスを指定できます。 +Windows ユーザーの場合は、.exe 拡張子を忘れずに含めてください。 +2. **path.exiftool** +exiftool へのパス。絶対パスと相対パスを指定できます。 +Windows ユーザーの場合は、.exe 拡張子を忘れずに含めてください。 +3. **length** +画像の長辺のサイズをピクセル単位で指定します。 +4. **frame.top** +フレーム上端の幅をピクセル単位で指定します。 +5. **frame.left** +フレームの左側の幅をピクセル単位で指定します。 +6. **frame.right** +フレームの右側の幅をピクセル単位で指定します。 +7. **frame.bottom** +フレーム下端の幅をピクセル単位で指定します。 +addframe の最新バージョンでは、プログラムによって自動的に計算され、無視されます。 +8. **frame.color** +[ImageMagick 方式](https://imagemagick.org/script/color.php "ImageMagick - Color Name : 英語")を使用して枠の色を指定します。 +9. **text.direction** +テキストを配置する場所を指定します。[ImageMagick 方式](https://imagemagick.org/script/command-line-options.php#gravity "See gravity type : 英語")を使用して指定します。 +10. **text.margin** +テキスト領域のマージンをピクセル単位で指定します。 +text.direction が South の場合は 0 を推奨します。 +SouthEast の場合、右マージンをピクセル単位で指定します。 +SouthWest の場合、左マージンをピクセル単位で指定します。 +11. **text.dpi** +ディスプレイのDPIを指定します。 ImageMagickのDPIとディスプレイのDPIが異なるとフォントサイズが異常になりますので必ず指定してください。 +12. **text.element** +テキスト 3 行分の書式指定ですので、**必ずすべて** 指定してください。 +13. **text.element.font** +フォントファイルへのパスを指定します。 ttc、ttf、otf フォント ファイルを指定できます。 +14. **text.element.color** +[ImageMagick 形式](https://imagemagick.org/script/color.php "ImageMagick - Color Name : 英語")のフォントカラーを指定します。 +15. **text.element.size** +フォントのサイズを**ポイント数**で指定します。**ピクセル数ではない**ので注意してください。 +16. **text.element.margintop** +Specifies the top margin of a line of text. +The display position of the line is mainly adjusted using margintop and marginbottom. +17. **text.element.marginbottom** +Specifies the bottom margin of a line of text. +The display position of the line is mainly adjusted using margintop and marginbottom. - 注: addframe.json を、addframe を実行するカレントディレクトリに配置してください。 - -### 使い方 +### usage ``` -addframe --input --output +addframe [--config congiguration_file_path] <--input input_file_path> <--output output_file_path> or -addframe --i --o +addframe [-c congiguration_file_path] <-i input_file_path> <-o output_file_path> ``` +1. **--config (-c)** +オプション。省略した場合は、**カレントディレクトリにある設定ファイル addframe.json が使用されます**。 +**省略した場合でも設定ファイル自体が不要になるわけではありません**のでご注意ください。 +2. **--input (-i)** +フレームを追加する画像ファイル。通常は JPEG です。Exif には以下のデータが記録されている必要があります。 +* Copyright +* Author +* Camera Maker +* Camera Model +* Lens Model +* ISO Speed +* F Number +* Shutter Speed +3. **--output (-o)** +フレームを追加した結果のファイルへのパス。 + +**注)** +多くのカメラは Exif に著作権者と著作者を記録しません。そのようなカメラをご利用の場合は私が作成した [addcopyright](https://github.com/mitsugu/addcopyright) というプログラムを使うことで画像ファイルの Exif に著作権者と著作者の情報を書き込むことができます。 + +### 開発リポジトリ +[https://github.com/mitsugu/addframe](https://github.com/mitsugu/addframe) + ### ライセンス [Apache License 2.0](./LICENSE.ja.md) -## その他 -楽しんでね!! 😀 +## 最後に +楽しんで!! 😀 diff --git a/README.md b/README.md index 6624868..a28f087 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ # addframe -[日本語](README.jp.md) +[日本語 README](README.jp.md) ## what is this? Reduces the size of a photo taken with a digital camera and converts it into a photo with a frame added. - The copyright, maker, camera, lens, and shooting data obtained from Exif are printed at the bottom of the frame. + The copyright, maker, camera, lens, and shooting data obtained from Exif are printed at the bottom of the frame. +example of addframe's result ## Requirements * [ExifTool](https://exiftool.org/) @@ -25,32 +26,111 @@ go install github.com/mitsugu/addframe@ ``` // addframe.json example { + "path": { + "imagemagick": "/path/to//magick", + "exiftool": "/bin/exiftool" + }, "length": 1280, - "top": 32, - "left": 32, - "right": 32, - "bottom": 128, - "font": "path/to/font.ttf", - "fontColor": "white", - "frameColor": "#3f3f3f", - "imagemagick": "path/to/magick", - "exiftool": "path/to/exiftool" + "frame": { + "top": 32, + "left": 32, + "right": 32, + "bottom": 128, + "color": "#3f3f3f" + }, + "text": { + "direction": "South", + "margin": 0, + "dpi": 96, + "element": [{ + "font": "/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc", + "color": "white", + "size": 24, + "margintop": 32, + "marginbottom": 4 + }, { + "font": "/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc", + "color": "white", + "size": 24, + "margintop": 4, + "marginbottom": 4 + }, { + "font": "/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc", + "color": "#cfcfcf", + "size": 16, + "margintop": 4, + "marginbottom": 4 + }] + } } ``` -1. Specify the path to the ttf or otf font file for font. This **must** also be specified according to the user's environment. -2. For imagemagick, specify the path to ImageMagick's magick command. This **must** also be specified according to the user's environment. -3. exiftool specifies the path to the exiftool command. This **must** also be specified according to the user's environment. -4. fontColor **may** specify the font color desired by the user. It can be specified using the same method as cascading style sheets. See [ImageMagick Color Names](https://imagemagick.org/script/color.php) for details. -5. frameColor **may** be specified as the user's desired frame color. It can be specified using the same method as cascading style sheets. See [ImageMagick Color Names](https://imagemagick.org/script/color.php) for details. The trick is to choose a color that makes the font stand out and brings out the image. - - Note: Place addframe.json in **the current directory** where you run addframe. +1. **path.imagemagick** +Path to ImageMagick's magick command. Absolute and relative paths can be specified. +Windows users, don't forget to include the .exe extension. +2. **path.exiftool** +Path to exiftool command. Absolute and relative paths can be specified. +Windows users, don't forget to include the .exe extension. +3. **length** +Specify the size of the long side of the image in pixels. +4. **frame.top** +Specifies the width of the top edge of the frame in pixels. +5. **frame.left** +Specifies the width of the left side of the frame in pixels. +6. **frame.right** +Specifies the width of the right side of the frame in pixels. +7. **frame.bottom** +Specify the width of the bottom edge of the frame in pixels. +In the latest version of addframe, it is automatically calculated and ignored by the program. +8. **frame.color** +Specify the frame color using [ImageMagick method](https://imagemagick.org/script/color.php "ImageMagick - Color Name"). +9. **text.direction** +Specify where to place the text. Specify using [ImageMagick method](https://imagemagick.org/script/command-line-options.php#gravity "See gravity type"). +10. **text.margin** +Specifies the margin of the text area in pixels. 0 is recommended if text.direction is South. For SouthEast, specify the right margin in pixels. For SouthWest, specify the left margin in pixels. +11. **text.dpi** +Specify the display DPI. If ImageMagick's DPI and the display's DPI are different, the font size will be abnormal, so **be sure to** specify it. +12. **text.element** +This is a format specification for three lines, so **be sure to** specify all of them. +13. **text.element.font** +Specify the path to the font file. You can specify ttc, ttf, and otf font files. +14. **text.element.color** +Specify the font color using [ImageMagick method](https://imagemagick.org/script/color.php "ImageMagick - Color Name"). +15. **text.element.size** +Specify the font size. +16. **text.element.margintop** +Specifies the top margin of a line of text. +The display position of the line is mainly adjusted using margintop and marginbottom. +17. **text.element.marginbottom** +Specifies the bottom margin of a line of text. +The display position of the line is mainly adjusted using margintop and marginbottom. ### usage ``` -addframe --input --output +addframe [--config congiguration_file_path] <--input input_file_path> <--output output_file_path> or -addframe --i --o +addframe [-c congiguration_file_path] <-i input_file_path> <-o output_file_path> ``` +1. --config (-c) +Optional. If omitted, the configuration file addframe.json in the current directory will be used. +Even if you omit it, **the configuration file is not unnecessary**. +2. --input (-i) +The image file to which the frame will be added. Usually a JPEG file. The following data must be written to Exif. +* Copyright +* Author +* Camera Maker +* Camera Model +* Lens Model +* ISO Speed +* F Number +* Shutter Speed +3. --output (-o) +Path to the resulting file after adding frames. + +**NOTE)** Many cameras do not record Copyright and Author in Exif. If you have such a camera, you can use a program I wrote called [addcopyright](https://github.com/mitsugu/addcopyright). + +### development repository +[https://github.com/mitsugu/addframe](https://github.com/mitsugu/addframe) + ### License [Apache License 2.0](./LICENSE.en.md)