将透明 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);
}