Проблема с PNG отображает в C#

Я использовал бы понимание списка сам, но здесь являюсь другим решением с помощью карты для заинтересованных...

map(lambda v: "%02d" %v, x)
9
задан KdgDev 26 October 2009 в 14:55
поделиться

2 ответа

Без лучшей библиотеки PNG, поддерживающей индексированные PNG, вам не повезло, пытаясь нарисовать это изображение, поскольку, очевидно, графический объект GDI + не поддерживает индексированные изображения.

Если вы этого не сделаете. Нет необходимости использовать индексированные PNG, вы можете перехватить эту ошибку и преобразовать входные данные в обычные RGB PNG с помощью сторонней утилиты.

edit:

Я нашел эту ссылку http: // fci-h. blogspot.com/2008/02/c-indexed-pixel-problem.html, который дает метод рисования на вашем изображении, однако это не повлияет на оригинал, просто копию, которую вы можете сохранить (), если вам требуется .

Если ссылка не работает:

Bitmap bm = (Bitmap) System.Drawing.Image.FromFile("Fci-h.jpg",true);
Bitmap tmp=new Bitmap (bm.Width ,bm.Height );
Graphics grPhoto = Graphics.FromImage(tmp);
grPhoto.DrawImage(bm, new Rectangle(0, 0, tmp.Width , tmp.Height ), 0, 0, tmp.Width , tmp.Height , GraphicsUnit.Pixel);
10
ответ дан 4 December 2019 в 09:37
поделиться

Невозможно создать графику из формата индексированного изображения (PNG, GIF, ...). Вы должны использовать Bitmap (файл или преобразовать изображение в растровое изображение).

Image img = Image.FromFile("file.png");
img = new Bitmap(img);
newGraphics = Graphics.FromImage(img);
12
ответ дан 4 December 2019 в 09:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: