Как мога да трансформирам PNG в BMP, без да загубя качество

Това е сложно. Първо опитах това с ужасен резултат

Image Dummy = Image.FromFile("image.png");   
Dummy.Save("image.bmp", ImageFormat.Bmp);

въведете описание на изображението тук-----трансформира се в---->въведете описание на изображението тук

Нямам представа какво може да се случи. Някакви улики?


person Alejandro Lozdziejski    schedule 02.02.2015    source източник
comment
Това е нещо, свързано с прозрачността на вашето изходно изображение. Току-що го опитах, като запазих вашия PNG с бял фон и преобразуването работи добре. Експериментирах с класа PngBitmapDecoder, но получавам същите резултати, така че все още не съм сигурен в решението.   -  person Gary Wright    schedule 02.02.2015
comment
Имате ли нужда от програма в .net или това е само за едно преобразуване с предоставеното изображение?   -  person Jongware    schedule 02.02.2015
comment
Това е за скрипт, който пиша, така че бинарният файл, който мога да извикам от .net процес, също ще свърши работа   -  person Alejandro Lozdziejski    schedule 02.02.2015


Отговори (1)


И BMP, и PNG са без загуби, но PNG поддържа прозрачност, докато BMP не. Тъй като вашето оригинално изображение има прозрачност, преди да го конвертирате, първо трябва да се запитате какво искате да се случи с (полу)прозрачните пиксели и не позволявайте на BMP енкодера да решава (изглежда, че взема някои странни решения, BTW).

За да премахнете сумите за прозрачност, концептуално, за да добавите някакъв непрозрачен фон (бял или черен, обикновено - във вашия случай бял). За да направите това в C#, вижте този въпрос

person leonbloy    schedule 02.02.2015