C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: Bitmapをgif形式で保存時ディザ以外の減色をしたい


(過去ログ 84 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■49928 / inTopicNo.1)  Bitmapをgif形式で保存時ディザ以外の減色をしたい
  
□投稿者/ ナイツ (1回)-(2010/05/23(Sun) 16:07:12)

分類:[VB.NET/VB2005 以降] 

(VB2008使用)
Bitmapをgif形式で保存するとき、Bitmap.Save(ファイル名, System.Drawing.Imaging.ImageFormat.Gif)としますが、
Bitmapで使用している色が多い場合、作成されるgifファイルはディザ処理がかかったようになります。
gif形式で保存するので減色してしまうのは当然のことなのですが、
減色されるのであれば、ある程度のグラデーションを保ちたいので、
ディザ以外の方法(近い色でまとめるなど)で減色したいのです。
.netでそのようなライブラリは用意されているでしょうか?
引用返信 編集キー/
■49930 / inTopicNo.2)  Re[1]: Bitmapをgif形式で保存時ディザ以外の減色をしたい
□投稿者/ 魔界の仮面弁士 (1656回)-(2010/05/23(Sun) 16:34:27)
No49928 (ナイツ さん) に返信
> Bitmapで使用している色が多い場合、作成されるgifファイルは
ハーフトーンになるのは、GDI+ の制限のようです。
http://support.microsoft.com/kb/319591/ja

> ディザ処理がかかったようになります。
ディザなしだと、画像によっては中間色の表現に困ることも。
http://www.geocities.jp/subtractive_color/

> gif形式で保存するので
.NET 3.0 以上という条件が付きますが、PresentationCore.dll 経由だと減色結果が
多少マシになります。画像によっては、これでもまだ不十分かも知れませんが。

Dim src As New System.IO.MemoryStream(System.IO.File.ReadAllBytes("C:\source.png"))
Dim enc As New System.Windows.Media.Imaging.GifBitmapEncoder()
enc.Frames.Add(System.Windows.Media.Imaging.BitmapFrame.Create(src))
Using gif As New System.IO.FileStream("C:\WPF.gif", System.IO.FileMode.Create)
 enc.Save(gif)
End Using

> 減色してしまうのは当然のことなのですが、
# ネタとして、フルカラーGIF の話。
# http://www.kero2.org/fg_ex.cgi

> .netでそのようなライブラリは用意されているでしょうか?
幾つかの減色ライブラリが公開されています。たとえば FreeImageNet とか iZYINS とか。
http://freeimage.sourceforge.net/
http://sourceforge.jp/projects/izyins/
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -