C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[3]: BitmapをGif形式で色むらなく保存する方法
(過去ログ 155 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 4 記事 (1 - 4 表示)] <<
0
>>
■89854
/ inTopicNo.1)
BitmapをGif形式で色むらなく保存する方法
▼
■
□投稿者/ ミルフィーユ
(1回)-(2019/01/08(Tue) 22:40:07)
分類:[.NET 全般]
こんにちは。
VB2013のBitmapクラスを使用して画像を保存しています。
画像には、黒の罫線・黒の文字描画の他、
単色(黄緑色に近い)で塗りつぶした丸模様をいくつか描いています。
色自体はそんなに多く使っていません。
(せいぜい、アンチエイリアスされる部分で色が増える程度です。)
これをGif形式で保存すると、単色で塗りつぶした丸模様の色が均一でなく、
うっすらと色むらのような感じになります。
Gif形式は色制限があるため、BitmapクラスのGif変換では
独自の方法で減色を行っているのだと思いますが、
もうちょっと何とかならないか、と考えています。
元の色数が少ないという前提で、塗りつぶし箇所の色むらが出ないように、
VBを使ってGif形式で保存する方法はあるでしょうか?
引用返信
編集キー/
編集
■89856
/ inTopicNo.2)
Re[1]: BitmapをGif形式で色むらなく保存する方法
▲
▼
■
□投稿者/ Hongliang
(738回)-(2019/01/08(Tue) 23:30:30)
まず、自力でやるのであれば、
・縦横同サイズの8bppIndexedのBitmapを新たに作成
・元Bitmapと新BitmapをそれぞれLockBitsして、元から新へ1ピクセルずつ移植
・ついでに元Bitmapの使用している色を新BitmapのPaletteに採っていく
というような処理を行うことになりますね。
System.Windows.Media.Imaging.GifBitmapEncoderを使えばBitmap::Saveよりはマシな減色が行われるというのを目にしました。
NuGetでgifで探せば良い感じのライブラリがあるかも知れません。
引用返信
編集キー/
編集
■89866
/ inTopicNo.3)
Re[2]: BitmapをGif形式で色むらなく保存する方法
▲
▼
■
□投稿者/ ミルフィーユ
(2回)-(2019/01/09(Wed) 22:28:10)
Hongliang様、コメントありがとうございます。
まずは簡易にBitmapをPng形式でMemoryStreamに保存し、
これをGifBitmapEncoderでGif形式でファイル保存したところ、
確かに色ムラは少しはマシになりましたが、
まだ薄いまだら模様が残っています。
そこで、自力でやろうかと思いますが、
下手したら減色をやらなければならないかも知れません。
ただ、目的としては塗りつぶしの箇所がきれいになればよいので、
それ以外の部分はBitmapクラスでGif化したもので十分です。
そこで、Hongliang様の自力方法を応用し、
例えば元の画像(24bit)とBitmapでGif化したものを用意し、
元の画像の任意のピクセルの色がGif化画像のパレットに含まれていれば
その色を採用する、みたいなことをやろうと思います。
引用返信
編集キー/
編集
■89867
/ inTopicNo.4)
Re[3]: BitmapをGif形式で色むらなく保存する方法
▲
▼
■
□投稿者/ ミルフィーユ
(3回)-(2019/01/09(Wed) 22:29:08)
■
No89866
(ミルフィーユ さん) に返信
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-