Как я могу увеличить индексированный PNG и сохранить его в ASP.NET? - PullRequest
1 голос
/ 02 января 2011

Я получил GDI +, чтобы прочитать PNG, увеличить его (ближайший сосед) и сохранить его, но, к сожалению, если я загружаю индексированный PNG, он все равно сохраняет его как 32-битный PNG, что является большой тратой .

Я видел несколько отличных сторонних инструментов, которые позволяют вам загружать / сохранять PNG, но, к сожалению, я не верю, что мой хост разрешит это, так как он использует среднее доверие, и эти инструменты загружают COM DLL.

Я шел по пути использования библиотек WPF, таких как PngBitmapEncoder (я использую .net 4), но мне не повезло, сохранив здесь индексированные настройки при создании масштабированной копии PNG, не говоря уже о Я смог выяснить, как использовать масштабирование ближайшего соседа (что я и получил, работая в GDI +).

Я облажался? Время начать читать байты один за другим? лол. Я надеюсь, что нет, потому что у меня, конечно, нет такого фона. Любая помощь высоко ценится.

1 Ответ

0 голосов
/ 02 марта 2011

Я предполагаю, что используется метод Image :: Save для сохранения PNG. Как именно вы называете Сохранить - как это:

   CLSID pngClsid;
   GetEncoderClsid(L"image/png", &pngClsid);
   image.Save(L"Mosaic2.png", &pngClsid, NULL);

Третий параметр (в примере выше NULL) указывает параметры, специфичные для кодера - в данном случае кодер PNG.

Вы проверили, какие параметры поддерживаются кодером PNG? Может быть, вы можете указать colorDepth.

Получение параметров для энкодера:

...