TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
ReplaceStr.txt活用、質問スレッド Part1
【常駐】TTBaseってどうよ?その10【プラグイン】
【Cookie】 2ch用ブラウザで書けない 【総合】
だいなファイラー使いが一日中張り付くスレ Part8
Google Chrome 拡張機能 23
Tablacus Explorer [ 誑 ] Part6
Mozilla Firefox/Thunderbird テーマスレ Part 7
マルチエミュレーター 「RetroArch」 Part3
nFinder Part21
【O/a】Opera総合スレッド Part174

ImageMagick


1 :2012/10/29 〜 最終レス :2020/05/31
超強力な画像処理ソフトImageMagickについて
公式
http://www.imagemagick.org/

2 :
R

3 :
いちばん基本的な使い方は画像形式の変換
> convert a.jpg a.bmp
a.jpgをbmp形式に変換したファイルが作成される
オプションも何も要らない
何にしたいかは拡張子を読んで勝手に判断してくれる
> convert *.jpg a.bmp
と書くと、全てのjpgファイルをbmp形式にする
ファイル名がカチ合ってるので、そこは
a-0.bmp
a-1.bmp
という具合に勝手に気を使って名前を付けてくれる

4 :
ファイル名を残したまま拡張子だけ変えたい時は、
convertではなくmogrifyを使って、
> mogrify -format bmp *.jpg
という風に書く。
-formatに指定できる文字列は、
> mogrify -list format
とやると表示されて、殆ど何でもある
magは無いけど
ところで、mogrifyってどういう意味だろ

5 :
>>3で、
ファイル名が自動で決まるのが気持ち悪い時は、
C言語とかのprintf()みたいな構文が使えて、
> convert *.jpg a%03d.bmp
と明示的に指定すると、
a000.bmp
a001.bmp
という具合になる
batファイルに書く時は、%を%%にしておかないと消えてしまうけどな

6 :
2007年に立ってたスレ
http://pc11.2ch.sc/test/read.cgi/software/1195220823/

7 :
画像形式変換の次によく使うのが、画像の縮小
画像掲示板でサムネイルを作るような処理はみんなこれ
> convert.exe -resize 100x100 a.jpg out.jpg
100x100ドットの画像になるように見えてそうではない
100x100の箱に収まる最大サイズに縮小してくれる
横長の画像なら横が100ドットになるし、縦長なら縦が100ドット
アスペクト比なんかどうでもいいから、とにかく100x100きっちりにしろ!!!、
という場合には
> convert.exe -resize 100x100! a.jpg out.jpg
と書く。! に強い意志が込められている。

8 :
-resizeオプションの後にはgeometry引数と呼ばれるものが入り、
結構いろいろな書き方ができる
-resize 50%
と書くと縦横50%に縮小してくれる
-resize 100x100>
と書くと、元の画像が100x100よりも大きい場合には100x100の中に入るように縮小するけれど、
100x100よりも小さい場合には何もせずにそのまま、という賢い処理をしてくれる
アイコンみたいな画像を拡大されても困るしね
batファイルに書く時は、%は%%に、>は^>と書く必要がある
リダイレクト文字をオプションに使うという神経が判らない

9 :
使用頻度は下がるけど、画像の一部切り出しというのも使う
photoshopで切り出す範囲を目で見て指定するならともかく、
最初から切り出す範囲が判ってるケースというのはあんまり無い
> convert -crop 100x100+0+0 a.jpg out.jpg
と書くと、a.jpgの左上から100x100の領域がout.jpgとして切り出される
+0+0の部分はオフセットで、切り出す左上の位置を示している
数学で直交座標をイメージすると、左下が原点だけど、画像は何故か左上が原点

10 :
オフセットの指定をサボって、
> convert -crop 100x100 a.jpg out.jpg
と書くと、挙動は大きく変わって、
画像を100x100単位でタイルに分割して、切れ端も含めてそれらを全部、
out-0.jpg
out-1.jpg
out-2.jpg
という感じに出力する
よくある、1枚の絵に見えて保存しようと思うと破片しか保存できない、
みたいな意地悪ページの作成に使える
タイルに分割してかつオフセットも指定したい時はどうすれば

11 :
ちょっと変わった使い方として、
> convert -crop 50%x100% a.jpg out.jpg
こんな指定もできる
オフセットを書いていないのでタイルに分割されるけど、
大きさを元ファイルに対する割合で記述していて、
横に50%縦に100%のサイズで分割するので、
結局左右に2分割した画像が
out-0.jpg
out-1.jpg
として得られる
見開きスキャンした画像の分割なんかに使える

12 :
GIFアニメの作り方
001.jpg
002.jpg
003.jpg
みたいな感じで素材の画像データが用意してあるとして、
> convert *.jpg out.gif
これで出来てしまう
アホみたいに簡単
まあ、素材の準備が大変なんだけど

13 :
さすがに手を抜きすぎなので、ちょっと指定を増やしていく
まず画像サイズ
GIFアニメは巨大になりがちなので、縮小してサイズ低下を図る
> convert -geometry 320 *.jpg out.gif
これで横320ピクセルになる
それでもサイズがでかいので、レイヤー間で同じことが書いてある部分は
省略することでサイズを縮める
> convert -layers optimize -geometry 320 *.jpg out.gif

14 :
これで結構縮む場合が多いけど、厳密に同じ色でないと効かないので、
動画のキャプチャーとかの素材だとまだ不十分なので、
多少違う色でも同じことにしといてよ、という指定をする
> convert -fuzz 3% -layers optimize -geometry 320 *.jpg out.gif
これはなかなかよく効く
効き過ぎて困るくらい
3%くらいにしとかないと、調子に乗って上げると再現なく縮む代わりに、
絵は全く動かなくなる

15 :
次の絵に変わるまでのインターバルを指定するには、
delayオプションを使う
> convert -delay 100 -layers optimize -geometry 320 *.jpg out.gif
単位は10ms。100にすると、1秒に1枚切り替わる。
delayを指定しないとデフォルトでは0ということになるけれど、
インターバルの小さなアニメGIFをどう表示するかはビュアーなり
ブラウザに依存するので、意外とちゃんと見えたりするけど、
ちゃんと指定するのが無難
ちゃんと指定してるのに、IEで見た時だけ妙に遅かったりするけど

16 :
もう一つ、省略していいような、指定した方がいいようなオプションを追加
> convert -loop 0 -delay 100 -layers optimize -geometry 320 *.jpg out.gif
loopは繰り返し回数を指定する
で、0にすると無限に繰り返す
でもデフォルトでそうなってる気がするけど、
ビュアーが気を利かして繰り返してくれてるだけなのかもしれないから、
明示的に指定しておくのが無難
3回だけ繰り返す、みたいなGIFアニメなんか見たことないけど

17 :
GIFアニメの作り方はこれで完成として、
逆に作ったGIFアニメをバラの画像ファイルに戻したい時
あるいは、他人の作ったGIFアニメを解剖したい時
> convert +adjoin animation.gif output%03d.bmp
+adjoin オプションを付けるとバラファイルになる
なんでadjoinなのにバラなのか
実は、-adjoinオプションというのが元々あって、
複数の画像ファイルを一つにまとめるという機能がある
でも、このオプションはデフォルトでONで、
だからこそ、出力ファイルにgifを指定するだけでGIFアニメが作れていた
で、adjoinするの止めろよ、という否定オプションが +adjoinなので、
バラす時だけadjoinが使われるという不思議なことになっている

18 :
>>17の方法だと、
-layers optimize で作られたアニメGIFは、差分部分のみしか画像化にされない
どう圧縮が効いているのか判断するのには便利だけど、
圧縮される前の絵に戻したい場合には、-coalesce オプションを使う。
> convert -coalesce +adjoin animation.gif output%%03d.bmp
コウアレスと発音する。アクセントはレの所。三重母音なのか?
意味は合体する癒着する

19 :
あ、実験してみたら、+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 :
画像をタイル状に並べる
大量の画像の見本みたいなのを作るのに便利
> montage -tile 4 -geometry 320 *.jpg tile.jpg
横に4つ並べて縦にずらっと並ぶ
縦で指定したい時は、-tile x4 のように書く
-geometryでの指定は、出来上がりサイズではなく、個々の画像のサイズになる
用意した画像の数が縦横の積ぴったりでない場合、余った部分は背景色になる
背景色はデフォルトでは白だけど、他の色にしたい場合は、
-background #808080
のように指定する。順番はRGB
繰り返し実験する時は、出力先に指定した画像を消しておかないと、
その画像もタイルの一部になってしまう
さらに繰り返すと、フラクタルみたいに無限に自分自身が映り込んでいく

21 :
続きまだー

22 :
実はふむふむこんな使い方もあるんだなと感心して見てました(´・ω・`)

23 :
convertのオプションの日本語訳
ttp://www5a.biglobe.ne.jp/~nkgwtty/njaLinuxImageMagick.html

24 :
PHPでMagick使ってるんだけど
文字の縁取りをStrokeWidthでやるとフォントの角ばった部分が丸くストロークされちゃう
改善方法ある?

25 :
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 :
お。書けた。
上記を*.vbsとして保存して、同名の*.txtにBOM無しUTF-8でテキストを入れておくと、そのテキストが画像になります。
これでフォントをMS ゴシックにすると、半角文字に空白がくっついて全角文字と同じ幅になってしまうのですが、
対処方法知ってる人がいたら教えてもらえないでしょうか。
等幅でもあくあフォントとかを使えば期待通りに動くのですが。

27 :
identify pic.jpg

28 :
'PNGファイルを一括して16色に減色するVBScript
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.Run "mogrify -colors 16 *.png"
Set objWshShell = Nothing
↑を「png一括減色16.vbs」とでも名前付けて保存して実行すると、
同じフォルダにある全てのPNGファイルを使用色数16にまで減色する
※注意 上書き保存

29 :
for %i in (*.png) do mogrify -colors 16 %i

30 :
mogfify -colors 16 *.png

31 :
'ドロップしたフォルダのPNGファイルを一括して16色に減色するVBScript
'複数フォルダ可。フォルダのpathに全角文字を含んでいると失敗する
'VBScriptとImageMagickの対応する文字コードが違うのが原因
'基本的にVBScriptはUTF-8が使えない
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objParm = Wscript.Arguments
If objParm.Count < 1 Then
WScript.echo "フォルダをドロップして下さい"
Else
For i=1 To objParm.Count
cmd = "mogrify -colors 16 """ & objParm(i - 1) & "\*.png"""
objWshShell.Run cmd
Next
End If
Set objWshShell = Nothing

↑を「png一括減色16ドロップ対応.vbs」とでも名前付けて保存して実行すると、
ドロップしたフォルダ(複数可)にある全てのPNGファイルを使用色数16にまで減色する
※注意 上書き保存

32 :
二つの画像の違いを見る
composite -compose difference A.png B.png diff.jpg
identify -format "%[mean]" diff.jpg
これで0が返ってきたなら一致

33 :
どういう時に日本語ファイル名が失敗するのか、
どうやれば成功するのかをまとめてくれ

34 :
irfanviewの自動色調補正と同等のことをやりたいんだけど
どうしたらよいのか皆目見当もつかぬわ

35 :
>>31 のスクリプトだと非同期モードで実行されるので、いっぺんに複数のウィンドウが開いて気持ち悪いかもしれない
同期モードで実行したい場合は、
objWshShell.Run cmd

objWshShell.Run cmd,1,True
に書き換えよう

36 :
色調補正ってこうじゃない
convert target.jpg -normalize result.jpg

37 :
>>36
それだとだいぶダサいんだよ

38 :
いいのあったよ
アグレッシブだけど白トビしない自動画像補正スクリプト
http://fallabs.com/blog-ja/promenade.cgi?id=155

39 :
>>38
ふぉぉぉおお! これいいじゃないの! よさげじゃないの!
ダメ元でも聞いてみるもんだぬ
うちにきてファックしてもいいぞ

40 :
スクリプト機能があるのかと思った

41 :
最近の IM (Win8 x64用バイナリ)は Windows でも日本語ファイル名が使えるようになってた。すてき

42 :
マジか
っていうか、何でここまで国際化が遅れてたんだろう

43 :
identify -list font
フォントのリストアップ

44 :
portableのx64は無いのだろうか

45 :
age

46 :
ついに Q16-x86-dll が無くなっちゃったなぁ。
自分でビルドできないひとはお手上げか。

47 :
jpg画像をまとめて左に90度回転したいのですができますか?

48 :
かなり難しいな

49 :
>>47
jheadで回転をキャンセルできるよ!

50 :
>>49
このソフトは知らなかったのでありがたいです
d.hatena.ne.jp/iww/20131007/jpegtran
強制的に回転させる方法はないでしょうか?

51 :
単純に 
-rotate 270
じゃいかんのか

52 :
>>51
jhead -rotate 270 xxx.jpg
jhead -rotate270 xxx.jpg
convert -rotate 270 xxx.jpg
convert -rotate270 xxx.jpg
でやってみてもダメでした
jheadは情報表示だけみたいです

53 :
出力ファイル指定し忘れてる?
convert -rotate 270 aaa.jpg bbb.jpg
上書きならmogrify
mogrify -rotate 270 aaa.jpg

54 :
なんでコマンドを探るモードなんだ

55 :
>>54
カービー将軍に連絡をとってくれ

56 :
>>53
ありがとうございます
convert -rotate 270 *.jpg *.jpeg
こんなかんじでやってみたのですが、画像を作成することは出来ました。
ただ、出力したものが
*-01.jpeg
みたいな感じでアスタリスクがつくのと番号が2桁なので困っています
元ファイル名00001.jpg
みたいな出力にしたいのですができますでしょうか?

57 :
>>56
出来るよ。詳細はマニュアル読んでくれ。
http://www.imagemagick.org/Usage/files/

58 :
もぐりふぁい

59 :
psdにアクセスするときhoge.psd[0]でレイヤー統合済みの画像にアクセスできるけど
この画像のアルファ値は実際の値と異なる時がある
例えば丸いボタンの絵で周りが透過してあるとして
convert hoge.psd[0] hoge.png
でアルファ付きpngが出せるが、透明部分との境界にフリンジが付くことがある
Photoshopでpsdを開くとフリンジは付いていない
しょうがないのでPhotoshopのバッチで処理したけど
imagemagickでフリンジがつかない様に綺麗に透過させるやり方、誰か教えて頂けませんか・・・
オプションでそういうのがあるんじゃないかと思うんだけど、見つからない・・・
二度手間だけどmatteオプションでグレースケールマスク画像を作り、-compose CopyOpacityさせる方法を試したけど
結局hoge.psd[0]でアクセスできる画像自体の透過値がおかしいから意味なかった
悩ましいくねくね

60 :
特定のパレットで減色するオプションを教えてください。
例えば、純赤、純黄、純緑、純マゼンダ、純青、黒のパレットです。

61 :
>>60
http://www.imagemagick.org/Usage/quantize/#remap

62 :
ありがとうございます

63 :
convert x.png -separate -delete 0 -delete 1 -colors 16 -format '%c' histogram:info:
するとなぜか8色程度にしかなってないのだけど、何が悪いんだろう?

64 :
convert -depth 24 a.png b.png
24bitのpngにしたいのですがこれをやると無駄に賢くて
色数が少なければグレースケールや4bit colormapなどになってしまいます
強制的に24bitにしたいのですがどうすればいいのでしょうか
賢さが憎い

65 :
convert a.png png24:b.png

66 :
graphicsmagickとの違いがいまいちわからん。
フォークした当初はopenmpへの対応なんかが違いだったみたいだけど、今はどっちも
対応してるようだし。オプションの内容やコマンドの書式が違うくらいか?
-resizeオプション使った時の結果はgraphicsmagickのほうが綺麗だったけど。

67 :
一番の差は、ImageMagicの方が、画像加工のコマンドが多いって所かな

68 :
ImageMagicじゃgif作るのがおっそくてGraphicsMagick入れたなたしか
だがGMはGMでたしか透過色の処理かなんかでバグっててIMもつかってる

69 :
convert -sigmoidal-contrast 3,0% dark.jpg light.jpg

70 :
gmは高速だけど低画質になることが多いな

71 :
DOSじゃ使わん

72 :
win版はimportついてないのか
バッチで使える軽いキャプチャない?

73 :
気軽に「こんなソフトありませんか?」Part.167
http://anago.2ch.sc/test/read.cgi/software/1421668938/

74 :
ImageMagicを使ってpngファイルにcHRMとgAMAが含まれているか調べたいのですが
-verboseを使えば調べることができるのですが、
いちいちプログラムで検索して抽出するのが面倒なので
そこの情報だけを抽出するコマンドってありませんか?

それとpng画像ファイルから
cHRMとgAMAの情報を削除してpngファイルを再保存したいのですが
どうすれば良いですか?
-stripのコマンドを試してみましたがうまくいきませんでした。

よろしくお願いいたします。
 

75 :
>>74
物凄く適当だけどこんなんでどう?。

identify.exe -verbose %1 | Findstr "png:cHRM png:gAMA"
IF NOT ERRORLEVEL 1 pngcrush_1_7_85_w32.exe -rem cHRM -rem gAMA -l 9 %1 "%~dpn1_pngcrush.png"

pngcrushはここからダウンロードしてきてね。
http://sourceforge.net/projects/pmt/files/pngcrush-executables/1.7.85/

76 :
mogrify -rotate 360 image.jpg

77 :
Windows7でImageMagick-6.9.2-Q16にてファイル名に縦横幅を記しjpegにして縮小したいので

convert in.png -resize 25% -set filename:outfile out%wx%h.jpg %[filename:outfile]

として縮小はできたもののバイナリで見るとpngのままでした。
out.jpg で指定すればjpegにはなってくれるものの幅も両立させるにはどうしたらいいでしょうか。

78 :
こうかな?

convert in.png -resize 25% -set filename:outfile %wx%h out%[filename:outfile].jpg

79 :
>>78
jpegに変換できてました。ありがとうございます。
拡張子をfilename: に含めてはいけないんですね。

80 :
convert -trim -fuzz 50% in.jpg out.jpg

81 :
ImageMagickとVBAを使ってpng画像に文字列を描画したいのですが
・バッチファイル
・VBAでのshellコマンド
を使った方法ではうまく文字列を描画したり
convertコマンドを使うことに成功しました。

処理速度を上げるためにDLLを使いたいのですがなぜかうまくいきません。

http://sites.google.com/site/torimemoforwork/vba/dll/imagemagick
このサイトに書かれた方法を試してみたのですがうまくいきません。
win8 64とExcel 2010 32bitを使っているので
32bit版をインストールして参照設定も行っているのですが

実行時エラー -2147215503
"convert.exe: unable to load module `C:\Program Files\ImageMagick-6.9.1-Q16\modules\coders\IM_MOD_RL_JPEG_.dll': The specified module could not be found.
というエラーが発生します。

検索してみると同じような症状が書かれたページが見つかりましたが
解決策が分かりませんでした。

どうすればDLL版を使えますでしょうか?

http://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=28134

82 :
すいません
過去のバージョンが残っていたようで
アンインストールしたらうまくいきました
 
しかしDLL版よりもshellを使った方が高速のようですね
 

83 :
Excelでやるからじゃないの。
VBやCやC++, C# などから使ってみると速いんじゃないのかな

84 :
教えてほしいのですが

アニメGIFの特定の画像を取り出すのは
convert Anime.gif[5] out.png
とかで取り出すと思うんですが

そのgifが 差分最適化?されてると 差分画像しか取り出せません
どのようにしたらよいのでしょうか?
convert Anime.gif[5] -coalesce out.png
とかしても変わらず

85 :
思いつきだけど -adjoin オプション付けてみるとか

86 :
montageを使うのじゃ
http://www.imagemagick.org/Usage/anim_basics/#coalesce

87 :
横からだがいいこと教えてもらった

88 :
>>86さんの情報も有益だけど>>84さんのやりたいこととは違うような。
>>84さんはgifアニメの中の特定の1フレームだけ取り出したいけど↓みたいになっちゃうって事でしょ?
http://i.imgur.com/B9JvhI7.png

>>86さんの方法だとgifアニメのフレームを並べた画像になっちゃう気がする。
もしかしたら自分が何か勘違いしてるだけかもしれないけど。

89 :
>>85-88
みなさんありかとうこざいます。
>>88
その通りです

回答を元に色々試行錯誤してみたのですが目的の画像が取り出せず
つたない英語力を駆使して 今日丸1日ぐぐりながらなんとか目的が達成できました
ついさっき VBS+HTA のアプリ(もどきww)に実装して動作テスト中です

正しい使い方かは わからないんですが
convert Anime.gif[0-5] -coalesce -delete 0-4 out.png
で単一フレームの取り出しに成功したので

最終的に
convert Anime.gif[0-5] -coalesce -delete 0--2 out.png
というコマンドに落ち着きました

PS.
montage は全フレームを並べたサムネイル画像を作るのに使ってはいるんですが
これで単一フレームを取り出すってのが >>86 見ても理解できなかった
(やっぱ英語は苦手じゃ)

90 :
ImageMagickを使ってpng画像上に文字列を書いているのですが
一部の文字だけを斜体するにはどうしたら良いですか?
全体を斜体することはできても
一部の文字だけ変更することができないのですが

どなたか教えてください
 

91 :
2016-7-11に convert も mogrify コマンドも無いんですが
どうすれ?

92 :
どこへ向かっているんだ

93 :
派生版?のGraphicsMagickってどうなの?
本家より処理が速いらしいけど

94 :
動画エンコードのハード支援みたいなことを、
静止画変換の大量処理でも使えると有り難い

95 :
>>93
>>66-70 で「速いけどバグあり」「低画質」って言及されてますね
でも2年前の話だし…今はどうなってるんでしょうねえ

既に見てるページかもしれないけど
ttp://labs.gree.jp/blog/2013/05/8132/
これも2013年の記事だし…
現バージョンでベンチ取ったり画質比較しないとちょっとわかんないですね

元々はImageMagickの開発が活発過ぎて
仕様が平気でガンガン変わるか嫌になってらforkしたとどこかで見かけたような
たしかに自分も、ImageMagick使うスクリプト書いてみたら
ImageMagickのバージョン上がった時に動かなくなって困ったことがありました
そのあたりのメンテナンスを楽にしたいときは選択肢に入るのですかね
(でも、脆弱性が見つかった際の修正頻度も検討しないと…)

96 :
abortを生かしたまま配布してるimagemagickにスピードどうこう言う方がおかしい
引数ミスでよく出るけど
処理ループの中もabort分岐だらけの筈

97 :
abort分岐だらけだとどういう問題がありますか?
 

98 :
abort分岐って何?

99 :
ImageMagick 7.0.3-2 Q16 x86

cropの処理が訳分かんねぇ

同じ画像に対して↓をかけ続けると500x500→490x490→480x480となる(これが正常な動作のはず)
mogrify.exe -crop 500x500+10+10 -format bmp *.bmp

が、これが出力をpngにすると最初の1回は動作するけど後はそのサイズのまま(500x500→490x490→490x490→490x490〜)
mogrify.exe -crop 500x500+10+0 -format png *.png

100 :
repageしなきゃデータ上の解像度は変わらんのじゃね?

101 :
bmpにはオフセットデータが無いから出力すると表示解像度ままのデータになるけど
pngにはあるからオフセット弄らずcropすると連続でやっても意味がない

102 :
いや+repageを付けても同じ状況に…
って思ってたら repage の位置が cropより前にないとダメみたいです
(他のオプションのことを考えると当たり前ですが…)
ネット上にある情報だと大抵repageがなぜか後ろの方にあるのでそれが正しいんだろうと思い込んでました

お手数お掛けしました

103 :
ImageMagickはpngにoffset値を書き込むから
png以外の形式にしなければならない

adobe固有データもjpg⇔png間で変換しても保持したままになる
これも.bmpに変換すれば削除できる

104 :
ってrepageが後につくのはその時点でcropされて移動したオフセット位置をクリアするための物ですよね…
スレ汚し失礼しました

105 :
なるほどそういうことだったのか

106 :
Intelの最新ドライバーと旧Magick.NETでリセットソフトが落ちる
unsharpmaskだけ?そこでメモリーバイオレーションとかがおきる

結構あることなの?

107 :
ImageMagickでリサイズにバイキュービックを使いたい場合ってcubicじゃなくてcatromを使うっていうので合ってますか?

http://www.imagemagick.org/Usage/filter/#cubics
http://www.imagemagick.org/Usage/misc/#bicubic
ここ読んだらそんなようなこと書いてある気がするんですが機械翻訳で読んでいるので自信がありません。

108 :
jpg

109 :
2つのbmpをでpsdにしたい(レイヤーは分ける)場合ってどうやればいいんですか?

110 :
ver7を使ってたけど、8にしたらマルチコアのうち1コアだけ使って遅くなった

111 :
ちがう
6を使ってて7にしたら

112 :
質問です。
外部ソフトから実行した場合、コマンドプロンプトの画面が表示されます。
非表示で実行するオプション、非表示にする方法はないでしょうか。

113 :
>>112
http://uguisu.skr.jp/Windows/bat_nowindow.html
こういう方法はどうだろう。試してないから分からんけど

114 :
そういうのは外部ソフトの問題

DOSコマンド実行にウィンドウは付き物ってわけじゃない
外部ソフト側がわざわざ表示させてる

115 :
>>114
普通に外部ソフト実行時に意図的に非表示実行できる機能が付いたソフトの方が希少だと思うけど。
DOSコマンドをコマンドプロンプトを非表示で実行できる機能が付いてたり、それが既定の動作ならできるけど、
大半のソフトはコマンドプロンプトを非表示で実行するのが既定の動作ではなく、特に設定で指定できないのが普通。
だからソフトによってはサイレントモードとか/hide、/nodisplayのオプションや機能が付いてる。

それに相当する機能やオプションはImageMagickにはないんじゃないかな。
バッチだと最小化しかできないから、VBS,JS,PowerShell等、その他非表示実行できるスクリプトからでないとできないから、あると便利だけど。

116 :
>>115
起動する外部ソフト自体がUIを持ってるなら話は別だけど
自前のUIを持たないソフト、例えばこのimagemagickのようなのは
敢えてウィンドウ出さない限りDOSウィンドウは出ない
DOSウィンドウが出てるのはウィンドウを作ってからそこでコマンド実行してるから
直にコマンド実行してたらウィンドウは出ない

117 :
もちろん、DOSウィンドウを出さないで下手なコマンド実行したら
終了したくても出来ないとか、知らずにとんでもない動作してたとかそんな事態が起こりうるんで
敢えて出す場合も多い

だからそれはコマンドを実行する側のソフトの動作による。

imagemagickの問題じゃない。

118 :
>>117
別にImageMagickの問題だと言いたい訳じゃないよ。
非表示で実行するオプションがあるか、という質問に「外部ソフトの問題」との回答だったから、
大半のソフトが外部ソフトを実行するパスに普通に.exeを記載,設定した場合に、DOSウィンドウを出して実行する仕様だから、それを書いただけだよ。

本当はスクリプト経由で実行しなくてもよいように、
外部ソフトがDOSウィンドウを出さずに実行する機能や、
実行される側のソフトが非表示で実行できるオプションがあると親切なんだけどね。
実行する側のソフトが、DOSウィンドウ出さずに実行する動作を行えればよいんだけど、
実際問題、外部ソフト側はDOSウィンドウを出して実行する(敢えてウィンドウを出す)仕様固定な場合がほとんどだから。

119 :
>>118
> 別にImageMagickの問題だと言いたい訳じゃないよ。

だから関係無いからここでグダグダ言うんじゃねえ

ス レ 違 い だ ってストレートに言わなきゃ通じないんかよ

120 :
QSVを使って縮小が速くなったりしない?

121 :
普段画像読み込んで処理する簡単なプログラムとか作ってるけど、GPUで画像を処理するところより、PNGの読み込み、書き出しにそれなりに時間かかるってことが多い。
だから支援機能使っても縮小自体は速くならないんじゃないかなぁ。JPGだったらCUDAで読み書きが速くなる例はあるみたいだけど、PNGの圧縮方式はあまり向いてないみたい。

122 :
縮小が発生しない変換よりも縮小を伴う変換の方が何倍も時間かかる
たくさん処理すると30分とか平気で待たされる
これが10分になると有り難い

123 :
元のファイルがjpgじゃないと駄目だけど

本当は速いImageMagick: サムネイル画像生成を10倍速くする方法 - 昼メシ物語
http://blog.mirakui.com/entry/20110123/1295795409

あとは並列処理するとかかなあ

124 :
並列処理はしてるでしょ
4コアで普通に負荷100%になるよ

125 :
magic.exeだけでconvertのコマンドもidentifyのコマンドも使えたのね
初めて知ったわ

126 :
2台のPCで片方のPCはconvertオプションで%指定通りにリサイズしてくれるんだけどもう片方の古いPCで同じコマンド投げたら 60%の %を無視して
60×比率固定pxのサイズで出力される謎

アプリのバージョンは同じ

127 :
>>126
Windowsのbatだと%は%%って書いてエスケープしないと駄目だけどそれかな

128 :
set x60=hoge
echo;60%x60%
60hoge
set x60=
echo;60%x60%
60%x60%

129 :
bashで

#!/bin/bash

identify -verbose *.jpg | grep "Colorspace" > test.txt
でカラースペース情報
Colorspace: sRGB
出せるけど
hoge.txt Colorspace: sRGB
っていう出力にするにはどうすればいいだろ?

grepの-lオプションとかつけてもだめだった

130 :
それテキストのソースが偶々imagemagickなだけで
完全スレ違いだろ

131 :
hoge.txt が何処から沸いて出た分からないし答えられる人はいないだろうな

132 :
ワロタw
しかし我が身を振り返って見て、その発達障害的思考は他人事とは思えない
おそらく君の望みは
grep -H
で解消されると思うぞw

133 :
コマンドラインなしにimagemagickは語れないだろ

ちょい説明がおかしかったね
カレントフォルダにhoge.jpgってのがあるって設定
hoge.jpg Colorspace: sRGB
って出力したい

>132
(standard input): Colorspace: sRGB
ってでた

134 :
for i in *.jpg;do echo -n $i; (identify -verbose $i | grep "Colorspace");done > test.txt

>>130 に同意する

135 :
>134
できた
for使わないとだめなのね、ありがとう

136 :
GIMPで編集したTIFF画像をconvertで-resizeするとボケます。
Photoshop Elementsなどで編集した場合はボケません。
この違いは何が原因なんでしょうか?
-unsharpを個別に判断するのではなく、一様に処理したいのですが…

137 :
>136
Photoshop Elements使えばいいだろ

138 :
>>136
一番の原因はGIMPで加えた透明のレイヤでした。
これがなければ他の場合に近くなりました。
それでも-resizeしたファイルサイズは1割ほど小さいですが。

139 :
inkscapeでSVG→PDF変換してるけど、ImageMagickでもできるのかな

140 :
もぐりふぁい

141 :
apngをリサイズしたいんだけど、phpでできますかあ?
アニメーション対応がgif しかなかったあ

142 :
出でよ!コアンヤァ!
            /|
          /| / |
  ∧无∧  /|/ |/ |/|
⊂( ´Д` ) /      |_
〈 ⌒  |  /         /
 (_)ノJ/______/

143 :
ImageMagick-liteとかないですか?jpegだけとかでいい。縮小切抜回転合成だけ。

144 :
存在意義が無い

145 :
沢山の画像フォーマットに対応すると脆弱性も増えるみたいだから特定の形式に絞ったものなんかは有用性あるんじゃないかな

146 :
.png
.jpg
.tga
.bmp
これだけでいいよ

147 :
imagemagickじゃいかんのか

148 :
>>147
重い&脆弱

149 :
じゃあ使わなければいいだけじゃん

150 :
GraphicsMagickじゃいかんのか

151 :
公開サービスにでも使ってんのかな
未発見の脆弱性とか気にしだしたらキリがないよ
世界中で動いてるwordpressなんて使用禁止だなw

152 :
>>151
客先の契約サーバーが禁止とかし始めてんのよ。

153 :
サーバーがIM禁止してんの?

154 :
古いのだとCPU 100%まで使ってくれるのに、
新しいのだとせいぜい50%くらいしか行かない
そして遅い

オプションか何かで高速化できる?

155 :
montage -tile で並べる時に、
右から左に並べられないかな
縦書きの文章を並べたいんだけど

156 :
ImageMagickにて、

「上から500px残してその下300pxを削除して残りの下部をつなげる」
といった処理を大量の画像に対して行いたいと思っています。
言い換えると
「画像の中央部分を削除して、上下を繋げる」
といった処理になります。

単一ファイル(001.png)に対しては、
magick 001.png -chop x300+0+500 001.jpg
でなんとかなるのですが、大量ファイルに一括処理する方法で困っています。

恥ずかしながらImageMagickは完全な初心者でして、
フォルダの指定などでも難航しており、
バッチ処理やコマンドなどを調べながらなんとかしようと思いましたが、
お手上げ状態となってしまっています・・・
(上記単一ファイルへのコマンドもIrfanViewスレにてご教示いただきました)

恐縮ではありますが、お力をお貸しいただけたらと思います。

157 :
元ファイルを残す
magick *.png -chop x300+0+500 after-%03d.png

元ファイルを変更
magick mogrify -chop x300+0+500 *.png

158 :
>>157
ご丁寧にありがとうございます。

うまくいきました!

本当にありがとうございました!

159 :
質問

「2420x3246の元画像を左右それぞれ60pxほどトリミング後、左・中・右の3分割にしてそれらを縦に結合」
これをワンライナーでやりたいのですがどうすればいいのでしょうか

3段組みされた横書き記事(数十ページ)をOCRに読み込ませるのが目的です

バッチ処理にしたほうが速くて簡単かな…

160 :
convert -crop
のgeometryはサイズ部分は%を付けるとパーセントで指定できる
50%x50%+0+0

シフト量部分もパーセントで指定したいけど、可能?

161 :
>>160
できないから -crop を 2 回繰り返すしか無いと思う。

162 :
事前にindentifyで画像のサイズ取得して計算で出す

163 :
もしかして -gravity を使ったことが無いとかw

164 :
何でそこにgravityが出てくるのかわからん

質問はどこかの端に寄せたい(n%xm%+0+0)ってわけじゃなく
n%xm%+s%+t% みたいなことが出来ないかって言ってるんだろ?

165 :
ああcrop2回でgravityってのは左上・右下からって言いたいのか
それだと最初の画像のサイズのn%を2回目のcropで出すのは難しいぞ
既に画像のサイズが変化してるからな

そもそも%指定は端数が出るから事前計算して%使わずやるのが確実だよ

166 :
小学生レベルの幾何が難しいとかw
よっぽどの巨大画像で無い限り幅も高さも精々数千ピクセルなんだから、
パーセント指定に小数部が出たところで 5 桁くらい確保しておけば十分だろw

167 :
2回やるのは内部的な中間データでやれる?
1回目の結果を一旦ファイルに書き出すとしたら、あんまりスマートではない

168 :
例として、画像の左から 10%、上から 20% を空けて、50% × 50% の領域を切り出したいとする。
まず画像の右下角を基準に、90% × 80% の領域を crop する。
これで左から 10%、上から 20% の部分が取り除かれる。
次に左上角を基準に、55.555...% × 62.5% の領域を crop する。
数字が中途半端だがこれは最初の crop で画像サイズが変わっているためで、
元の画像から見れば 50% × 50% の領域に相当する。

convert 入力画像 -gravity southeast -crop 90%x80% +repage -gravity northwest -crop 55.555556%x62.5% 出力画像

途中で +repage を行っているのは、仮想キャンバスを切り抜き後の画像に合わせるため。
+repage の代わりに、前の -crop のサイズ指定の末尾に感嘆符 (!) を付けても良い。

169 :
なるほどな
判ってみれば、それしかないという気がしてきた

170 :
へぇー初めて知った。
入力ファイルの代わりにURLを与えたら、そのまま通ってしまってびっくり。
magick https://2ch.sc/images/2ch_mascot.png 出力画像.png
HTTP/HTTPS/FTPを受け付けることを確認。
自力でダウンロードしてるのか、裏でwgetか何かが動いてるのかは知らない。

171 :
Windows のペイント(mspaint)でさえ開くでURL指定すると読み込むんだしな

172 :
以前ドキュメントスキャナーでカラーpdfを作成しました。
カラーpdfをグレイスケールに変換すると、文字が一部くずれたりします。
convert -colorspace Gray -gamma 2.2 aaa.pdf ccc.pdf
グレイスケールへのオンラインpdf変換を使うと該当部分の文字もきれいに変換されます。
文章9割画像1割の300dpiのpdfをきれいにコンバートするにはどのようなパラメーターを
指定すればよいか詳しい方教えてください。

173 :
https://i.imgur.com/Kt56z76.jpg

174 :
172です。
下記リンクが参考になりました。
ttps://superuser.com/questions/318586/how-to-convert-pdf-to-grayscale&usg=ALkJrhjrpkQDp394roQlwYQUAaU1wMsn-w
下記コマンドを実行すると、スキャンした写真や文章も綺麗にグレースケールになりました。
gs -o grayscale.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibilityLevel=1.4 genpon.pdf
コンバート中に下記のようなエラーはでます。文字化け部分は読めませんでした。
Can't find CID font "�l�r ����".
Attempting to substitute CID font /Adobe-Japan1 for /�l�r ����, see doc/Use.htm#CIDFontSubstitution.

上記gsコマンドと同等の結果をimagemagickのconvertで行うにはどのようなパラメータを
与えればよいか、わかる方教えていただけないでしょうか。
よろしくお願いします。

175 :
>>174
Ghostscript を入れてない Windows 環境の ImageMagick で PDF を読ませると
convert: FailedToExecuteCommand `"gswin32c.exe" ...'
としてエラーになるんだよね。

つまり、PDF のビットマップ化は Ghostscript に丸投げしているから、
その Ghostscript 側で解決する以外に方法は無いのでは、と。

176 :
>>175
レスありがとう。
すみません環境書いてませんでした。
ubuntu20.04ltsとimagemagik version7です。
gsでエラーは出ましたかが変換されたpdfは正常に読めました。
gsでは文字まで綺麗にカラーからグレイカラーに変換されました。imagemagikでもほぼ同等の変換させるには、どのようなパラメータを指定擦れは良いか教えてもらえないでしょうか。
よろしくお願いします。

177 :
>>172 の
> 以前ドキュメントスキャナーでカラーpdfを作成しました。
という部分を見過ごしていました。
PDF でも中身は 300 dpi の画像だけということですから
magick convert -density 300x300 入力ファイル名 -colorspace Gray 出力ファイル名
とすれば、おそらく画像がリサンプリングされることなく変換されると思います。
ImageMagick が内部に処理エンジンを持っているファイル形式であれば間違いなく
これで行けていますが、生憎 Ghostscript を動かせる環境を持っていないので、
ImageMagick との間で解像度や色空間の情報まで全て正しくやりとりできるかは判りません。

178 :
https://i.imgur.com/JdJwxFU.jpg

179 :
>>177
教えてくれてありがとうございます。
希望通りの出力がされました!!!
ものすごく助かりました。
一つだけ問題がありまして、1枚くらいなら問題なく変換できます。
200ページくらいの300dpiカラースキャンpdfを変換かけるとout of memoryで
終了してしまいます。当初4GBのUBUNTU仮想マシンだったのでそれが原因かなと
別PC(32GBメモリーあります。)にVMWAREに物理メモリー16GB割り当ててやっ
ても同じエラーが発生されます。
topコマンドでみると、最初gsが数分動作してその後convertが動作しているようです
convertの使用メモリがどんどんあがっていき16gくらいになるとout of memoryで強制終了されます。
回避方法があれば教えていただけないでしょうか。
よろしくお願いします。

180 :
convert -limit memory 32MiB -limit map 64MiB -density 300x300 mae.pdf -colorspace Gray outgray.pdf
ディスク容量を100GBくらいにして上記コマンドを実行したらエラーがでなくなりました。
変換後のグレーカラーの画質に関しては希望通りになりました。
ただ変換元のカラーPDFが90MBくらいのものが、グレーに変換後なぜか400MBくらいになります。
パラメータどこをいじればいいんでしょうか?
おしえてもらえないでしょうか、よろしくお願いします。

181 :
>>180
画像が無圧縮ないし可逆圧縮で PDF 内に書き込まれてしまっているためかも知れません。
-colorspace Gray と outgray.pdf との間に
-compress jpeg
-quality 90 (値はお好みで)
あたりを加えてみてはどうでしょうか。

182 :2020/05/31
>>181
何度もありがとうございます。
convert -limit memory 8GiB -limit map 2GiB -density 300x300 bike.pdf -colorspace Gray -compress jpeg -quality 30 outgray30.pdf
-quality 50くらいで変換前サイズとほぼ同等になりました。
格安のタブレットで見るために、サイズを小さくしたいので30くらいにしてみます。
quality30でも個人的には問題ありませんでした。
大量のカラー自炊pdfファイルがあったので、本当に助かりました。
ありがとうございました。

FastCopy Pert4
LastPass Password Manager Part1
【HDD Regenerator】セクタ修復ソフト 4【HDAT2】
☆携帯用 2chブラウザ iMona Part19★
Primo Ramdisk (VSuite Ramdisk) 3
Text Viewer テキストビューア 3ページ目
MediaMonkey Vol.04
PC用PS3エミュ【RPCS3】 その6
【NDS】ニンテンドーDSエミュ総合スレ54【EMU】
Tablacus Explorer [ 誑 ] Part5
--------------------
【三共】 PFマクロスΔ Part.23
放送大学大学院 Part 31 [無断転載禁止](c)2ch.net
韓国人牧師が韓国流育児を語る。「韓国のお父さんはみんな、娘を強姦する。」★2
マザコンボノボ逃走
我が心の Lynsey De Paul
ダライアスバーストは9割方こける
アイドルマスターシンデレラガールズ愚痴スレ5603
☆☆☆VALENCIA C.F.part156☆☆☆
【臨床医学】不妊の半数は男性が原因!「精子自体の異常」に関心高まる[09/18]
【愚痴】Discord晒し
【兵役拒否】在日朝鮮人、チョンモメンってほんと屑だよな【他国に寄生】
高梨沙羅さんのメイク
ファミコン版ロードランナーを語るスレ
喪女が忘れられないTVの衝撃シーン【12ch目】
有識者「日本の首都を岡山・吉備高原に移すべき」
IPアドレス 117.108.53.66 の話はやめましょう
東方2次創作動画総合スレッド Part5
まろまゆの地味なスレ
【SAO】ソードアート・オンライン part416
2チャン中毒で離婚した森直也
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼