1 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/10/29(月) 01:02:19.67 ID:3BYDrmeE0] 超強力な画像処理ソフトImageMagickについて 公式 www.imagemagick.org/
2 名前:名無しさん@お腹いっぱい。 [2012/10/29(月) 01:50:07.16 ID:cUfjJSZ20] ちんぽ
3 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/10/30(火) 17:02:13.08 ID:/m10Ewat0] いちばん基本的な使い方は画像形式の変換 > convert a.jpg a.bmp a.jpgをbmp形式に変換したファイルが作成される オプションも何も要らない 何にしたいかは拡張子を読んで勝手に判断してくれる > convert *.jpg a.bmp と書くと、全てのjpgファイルをbmp形式にする ファイル名がカチ合ってるので、そこは a-0.bmp a-1.bmp という具合に勝手に気を使って名前を付けてくれる
4 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/10/30(火) 17:12:28.49 ID:/m10Ewat0] ファイル名を残したまま拡張子だけ変えたい時は、 convertではなくmogrifyを使って、 > mogrify -format bmp *.jpg という風に書く。 -formatに指定できる文字列は、 > mogrify -list format とやると表示されて、殆ど何でもある magは無いけど ところで、mogrifyってどういう意味だろ
5 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/10/30(火) 17:17:47.91 ID:/m10Ewat0] >>3 で、 ファイル名が自動で決まるのが気持ち悪い時は、 C言語とかのprintf()みたいな構文が使えて、 > convert *.jpg a%03d.bmp と明示的に指定すると、 a000.bmp a001.bmp という具合になる batファイルに書く時は、%を%%にしておかないと消えてしまうけどな
6 名前:名無しさん@お腹いっぱい。 [2012/10/30(火) 20:55:37.00 ID:FDCbbAGL0] 2007年に立ってたスレ pc11.2ch.net/test/read.cgi/software/1195220823/
7 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/10/31(水) 23:33:08.22 ID:XbOI5/Yq0] 画像形式変換の次によく使うのが、画像の縮小 画像掲示板でサムネイルを作るような処理はみんなこれ > convert.exe -resize 100x100 a.jpg out.jpg 100x100ドットの画像になるように見えてそうではない 100x100の箱に収まる最大サイズに縮小してくれる 横長の画像なら横が100ドットになるし、縦長なら縦が100ドット アスペクト比なんかどうでもいいから、とにかく100x100きっちりにしろ!!!、 という場合には > convert.exe -resize 100x100! a.jpg out.jpg と書く。! に強い意志が込められている。
8 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/10/31(水) 23:57:00.66 ID:XbOI5/Yq0] -resizeオプションの後にはgeometry引数と呼ばれるものが入り、 結構いろいろな書き方ができる -resize 50% と書くと縦横50%に縮小してくれる -resize 100x100> と書くと、元の画像が100x100よりも大きい場合には100x100の中に入るように縮小するけれど、 100x100よりも小さい場合には何もせずにそのまま、という賢い処理をしてくれる アイコンみたいな画像を拡大されても困るしね batファイルに書く時は、%は%%に、>は^>と書く必要がある リダイレクト文字をオプションに使うという神経が判らない
9 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/02(金) 00:29:04.07 ID:DjgZZc750] 使用頻度は下がるけど、画像の一部切り出しというのも使う photoshopで切り出す範囲を目で見て指定するならともかく、 最初から切り出す範囲が判ってるケースというのはあんまり無い > convert -crop 100x100+0+0 a.jpg out.jpg と書くと、a.jpgの左上から100x100の領域がout.jpgとして切り出される +0+0の部分はオフセットで、切り出す左上の位置を示している 数学で直交座標をイメージすると、左下が原点だけど、画像は何故か左上が原点
10 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/02(金) 00:38:48.41 ID:DjgZZc750] オフセットの指定をサボって、 > convert -crop 100x100 a.jpg out.jpg と書くと、挙動は大きく変わって、 画像を100x100単位でタイルに分割して、切れ端も含めてそれらを全部、 out-0.jpg out-1.jpg out-2.jpg という感じに出力する よくある、1枚の絵に見えて保存しようと思うと破片しか保存できない、 みたいな意地悪ページの作成に使える タイルに分割してかつオフセットも指定したい時はどうすれば
11 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/02(金) 00:48:07.64 ID:DjgZZc750] ちょっと変わった使い方として、 > convert -crop 50%x100% a.jpg out.jpg こんな指定もできる オフセットを書いていないのでタイルに分割されるけど、 大きさを元ファイルに対する割合で記述していて、 横に50%縦に100%のサイズで分割するので、 結局左右に2分割した画像が out-0.jpg out-1.jpg として得られる 見開きスキャンした画像の分割なんかに使える
12 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/03(土) 01:46:54.59 ID:jA1iIBcW0] GIFアニメの作り方 001.jpg 002.jpg 003.jpg みたいな感じで素材の画像データが用意してあるとして、 > convert *.jpg out.gif これで出来てしまう アホみたいに簡単 まあ、素材の準備が大変なんだけど
13 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/03(土) 01:51:01.29 ID:jA1iIBcW0] さすがに手を抜きすぎなので、ちょっと指定を増やしていく まず画像サイズ GIFアニメは巨大になりがちなので、縮小してサイズ低下を図る > convert -geometry 320 *.jpg out.gif これで横320ピクセルになる それでもサイズがでかいので、レイヤー間で同じことが書いてある部分は 省略することでサイズを縮める > convert -layers optimize -geometry 320 *.jpg out.gif
14 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/03(土) 01:54:30.82 ID:jA1iIBcW0] これで結構縮む場合が多いけど、厳密に同じ色でないと効かないので、 動画のキャプチャーとかの素材だとまだ不十分なので、 多少違う色でも同じことにしといてよ、という指定をする > convert -fuzz 3% -layers optimize -geometry 320 *.jpg out.gif これはなかなかよく効く 効き過ぎて困るくらい 3%くらいにしとかないと、調子に乗って上げると再現なく縮む代わりに、 絵は全く動かなくなる
15 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/03(土) 02:07:49.45 ID:jA1iIBcW0] 次の絵に変わるまでのインターバルを指定するには、 delayオプションを使う > convert -delay 100 -layers optimize -geometry 320 *.jpg out.gif 単位は10ms。100にすると、1秒に1枚切り替わる。 delayを指定しないとデフォルトでは0ということになるけれど、 インターバルの小さなアニメGIFをどう表示するかはビュアーなり ブラウザに依存するので、意外とちゃんと見えたりするけど、 ちゃんと指定するのが無難 ちゃんと指定してるのに、IEで見た時だけ妙に遅かったりするけど
16 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/03(土) 02:14:28.17 ID:jA1iIBcW0] もう一つ、省略していいような、指定した方がいいようなオプションを追加 > convert -loop 0 -delay 100 -layers optimize -geometry 320 *.jpg out.gif loopは繰り返し回数を指定する で、0にすると無限に繰り返す でもデフォルトでそうなってる気がするけど、 ビュアーが気を利かして繰り返してくれてるだけなのかもしれないから、 明示的に指定しておくのが無難 3回だけ繰り返す、みたいなGIFアニメなんか見たことないけど
17 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/03(土) 02:28:12.10 ID:jA1iIBcW0] GIFアニメの作り方はこれで完成として、 逆に作ったGIFアニメをバラの画像ファイルに戻したい時 あるいは、他人の作ったGIFアニメを解剖したい時 > convert +adjoin animation.gif output%03d.bmp +adjoin オプションを付けるとバラファイルになる なんでadjoinなのにバラなのか 実は、-adjoinオプションというのが元々あって、 複数の画像ファイルを一つにまとめるという機能がある でも、このオプションはデフォルトでONで、 だからこそ、出力ファイルにgifを指定するだけでGIFアニメが作れていた で、adjoinするの止めろよ、という否定オプションが +adjoinなので、 バラす時だけadjoinが使われるという不思議なことになっている
18 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/03(土) 02:46:44.99 ID:jA1iIBcW0] >>17 の方法だと、 -layers optimize で作られたアニメGIFは、差分部分のみしか画像化にされない どう圧縮が効いているのか判断するのには便利だけど、 圧縮される前の絵に戻したい場合には、-coalesce オプションを使う。 > convert -coalesce +adjoin animation.gif output%%03d.bmp コウアレスと発音する。アクセントはレの所。三重母音なのか? 意味は合体する癒着する
19 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/03(土) 03:00:24.31 ID:jA1iIBcW0] あ、実験してみたら、+adjoinオプション無くてもバラせるわ > convert animation.gif output%03d.bmp これでいける > convert animation.gif output%03d.gif これでも大丈夫 > convert animation.gif output.gif これだとアウト > convert animation.gif output.bmp これならok つまり、基本は-adjoin有効なんだけど、出力ファイルがbmpみたいに adjoin不可能なら、自動的に+adjoinになる gifの場合はadjoin可能だからバラしてくれないけど、 %03d.gifみたいにいかにもバラして欲しい感じのファイル名だった時は、 気を利かせて+adjoinになる 凄いでしょ ImageMagickこんなんばっかりよ
20 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/11(日) 23:28:33.18 ID:toT+qNEC0] 画像をタイル状に並べる 大量の画像の見本みたいなのを作るのに便利 > montage -tile 4 -geometry 320 *.jpg tile.jpg 横に4つ並べて縦にずらっと並ぶ 縦で指定したい時は、-tile x4 のように書く -geometryでの指定は、出来上がりサイズではなく、個々の画像のサイズになる 用意した画像の数が縦横の積ぴったりでない場合、余った部分は背景色になる 背景色はデフォルトでは白だけど、他の色にしたい場合は、 -background #808080 のように指定する。順番はRGB 繰り返し実験する時は、出力先に指定した画像を消しておかないと、 その画像もタイルの一部になってしまう さらに繰り返すと、フラクタルみたいに無限に自分自身が映り込んでいく
21 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/13(火) 22:52:57.85 ID:nS/ZZQq50] 続きまだー
22 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/15(木) 01:20:15.93 ID:hdD7JsrG0] 実はふむふむこんな使い方もあるんだなと感心して見てました(´・ω・`)
23 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/15(木) 09:13:34.92 ID:MKggAK5r0] convertのオプションの日本語訳 ttp://www5a.biglobe.ne.jp/~nkgwtty/njaLinuxImageMagick.html
24 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/27(火) 16:44:36.53 ID:nFQjpjNA0] PHPでMagick使ってるんだけど 文字の縁取りをStrokeWidthでやるとフォントの角ばった部分が丸くストロークされちゃう 改善方法ある?
25 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/12(水) 21:16:13.28 ID:Vk2VT3By0] Const Width = "640" Const Height = "480" Const Font = "meiryo.ttc" Set FileSystem = Createobject("Scripting.FileSystemObject") Set Shell = CreateObject("WScript.Shell") Set ImageMagick = CreateObject("ImageMagickObject.MagickImage.1") Messages = ImageMagick.Convert( _ "-font", FileSystem.BuildPath(Shell.SpecialFolders("Fonts"), Font), _ "-pointsize", "60", _ "label:@" & FileSystem.GetBaseName(WScript.ScriptFullName) & ".txt", _ "nul.bmp") If Width / Split(Messages, ",")(0) =< Height / Split(Messages, ",")(1) Then PointSize = Fix(Width / Split(Messages, ",")(0) * 60) Else PointSize = Fix(Height / Split(Messages, ",")(1) * 60) End If ImageMagick.Convert _ "-size", Width & "x" & Height, _ "canvas:none", _ "-fill", "white", _ "-draw", "rectangle 0,0," & Width - 1 & "," & Height - 1, _ "-font", FileSystem.BuildPath(Shell.SpecialFolders("Fonts"), Font), _ "-pointsize", PointSize, _ "-fill", "black", _ "-gravity", "center", _ "-annotate", "0", "@" & FileSystem.GetBaseName(WScript.ScriptFullName) & ".txt", _ FileSystem.GetBaseName(WScript.ScriptFullName) & ".bmp"
26 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/12(水) 21:23:39.12 ID:Vk2VT3By0] お。書けた。 上記を*.vbsとして保存して、同名の*.txtにBOM無しUTF-8でテキストを入れておくと、そのテキストが画像になります。 これでフォントをMS ゴシックにすると、半角文字に空白がくっついて全角文字と同じ幅になってしまうのですが、 対処方法知ってる人がいたら教えてもらえないでしょうか。 等幅でもあくあフォントとかを使えば期待通りに動くのですが。