透明な png 画像をイメージリストにダウンロードし、それらをリストビューに直接配置すると、品質が高くなります。
しかし今、私は画像をSQLiteデータベースに保存して同じ高品質に戻そうとしていますが、私が試したすべてのことで品質は非常に悪いです.
IMAGE、CHAR、BLOB の SQLite フィールド タイプと、データを取り戻すためのさまざまな方法を試しました。最適なフィールド タイプはありますか?
ビットマップとして保存しようとしましたが、透明なpngに戻す方法がわかりませんでした。多分それはうまくいくでしょうか?
これは、CHAR フィールド タイプで最後に試したものです。イメージリストに追加すると、品質が非常に悪くなります (dr は SQLite データ行です)。
byte[] imageBytes = Convert.FromBase64String(dr["image"].ToString());
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
ms.Write(imageBytes, 0, imageBytes.Length);
Image image = Image.FromStream(ms, true);
透明なpngをSQLiteで高品質の画像として保存し、同じ高品質で戻す方法を教えてください。
ありがとう
編集
これでBMPに保存できます:
string base64ImageString = ImageToBase64(imageList1.Images[i], ImageFormat.bmp);
しかし、透明なpngとして戻す方法がわかりません。
編集
本当の問題は、透明性を失ったことです。それらの部分は現在黒くなっています。
私はこれを使用していますが、役に立たないようです:
byte[] imageBytes = Convert.FromBase64String(dr["image"].ToString());
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
using (MemoryStream mss = new MemoryStream())
{
bmp.Save(ms, ImageFormat.Png);
}