tsubu_csの日記: WPFを使った画像の加工方法で悩む 8
日記 by
tsubu_cs
画像ファイルを加工したくなったのでWPFについて調べてたんだけど
いい方法が見つからない。
やりたい事:
・任意角で画像を回転させた後、クロップする。
・GUIに表示しなくてよい。
・(素人なので) なるべくお手軽にやりたい。
クロップの方は、System.Windows.Media.Imaging.CroppedBitmap を
使えばよさそう。
回転の方が目処がついてない。
System.Windows.Media.Imagingの下にあるものでは、TransformedBitmap が
90度づつなら回転できるみたいだけど、任意角でなくて不適。
どうもこの下のものだけではできなさそうで……
System.Windows.Controls.image に一旦持っていけば LayoutTransform
を使って回転できそうなんだけど、UIじゃないんだけどなぁという違和感が
ぬぐえない。
皆どうやってんだろう……
dotnetとかしらんがな (スコア:3)
ファイルの読書きにWIC, 加工にD2Dを使えば良さそうだけど、中々に面倒。
Windows Imaging Component の使用
http://msdn.microsoft.com/ja-jp/library/windows/desktop/ff973956.aspx [microsoft.com]
Re:dotnetとかしらんがな (スコア:1)
ご助言ありがとうございます。
ただ C# で書いているということと、
> ・(素人なので) なるべくお手軽にやりたい。
ということで、もう少しWPFなどでできないか考えてみます。
System.Drawing.Graphicsクラスで (スコア:1)
そこはWPF以前からの古参兵、System.Drawing.Graphicsクラスに活躍してもらいましょう。
Transformプロパティで変形できます。
Re:System.Drawing.Graphicsクラスで (スコア:1)
ご助言ありがとうございます。
やはりそっちの方が実装が楽ですかねぇ。
性能面と最新フォーマットへの対応の面でWPFが有利なのかなと思い、
今のところWPFで考え、駄目なら次善手としてSystem.Drawing.Imaging
などを使う事を考えていました。
WPF、なんでこんなにややこしいのか……と思う次第です。
RenderTargetBitmap (スコア:0)
System.Windows.Media.Imagingは画像処理ライブラリと言うほどは分厚くないですからね。
DrawingVisualからDrawingContext使って回転&描画、その後そのDrawingVisualをRenderTargetBitmapにDrawという手順でいかがでしょうか。
Re:RenderTargetBitmap (スコア:1)
情報ありがとうございます。
なるほどそのようにするのですか。勉強になりました。
週末トライしてみます。
目的なの手段なの? (スコア:0)
普通に ImageMagick でやれば済む気がするけど。
Re:目的なの手段なの? (スコア:1)
自作プログラムで加工することが目的になります。
すいませんが、他のプログラムから行うのでは今回は目的が達せられません。