Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.12.04;
Скачать: CL | DM;

Вниз

Конвертер BMP 32 bit BGRA в BMP 8 bit c Palette   Найти похожие ветки 

 
Pcrepair ©   (2011-08-16 21:00) [0]

Добрый день!
есть следующий вариант преобразования

procedure TForm1.Button1Click(Sender: TObject);
begin
 Form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+"\"+"s.bmp");
 Image1.Picture.Bitmap.PixelFormat:= pf8bit;
 Form1.Image1.Picture.Bitmap.SaveToFile(ExtractFilePath(Application.ExeName)+"\"+"s1.bmp");
end;

Все работает, но есть вопросы
1. точно  Image1.Picture.Bitmap.PixelFormat:= pf8bit; преобразует BGRA в Palette, или там какой-то фокус
2. как проверить наличие палитры в S1? может есть у кого код процедуры, вытаскивающий политру из файла? или программа какая это может сделать? чтоб точно знать что палитра ЕСТЬ
3. нет ли у кого альтернативного кода? стандартные решения, как утверждают некоторые, однобоки. если можно, приведите тут пример
Заранее спасибо


 
Игорь Шевченко ©   (2011-08-16 21:59) [1]


> есть вопросы


а почитать
procedure TBitmap.SetPixelFormat(Value: TPixelFormat);
не судьба ?


 
antonn ©   (2011-08-16 22:56) [2]


> 3. нет ли у кого альтернативного кода? стандартные решения,
>  как утверждают некоторые, однобоки. если можно, приведите
> тут пример
> Заранее спасибо

речь о дизеринге? тогда посмотреть fastlib, модуль FastQuant.pas


 
Sapersky   (2011-08-17 15:04) [3]

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

Любой графический вьюер (кроме стандартного? тыщу лет им не пользовался) показывает информацию о картинке в виде ширина*высота*глубина цвета. Если глубина цвета = 8, или иногда пишут 256 цветов - это палитровая картинка. В Irfanview можно и саму палитру посмотреть.

нет ли у кого альтернативного кода

http://www.efg2.com/Lab/Graphics/Colors/ShowDemoOne.htm


 
Pcrepair ©   (2011-08-17 15:21) [4]

похоже TPixelFormat - стандартная процедура конвертации
так и запишем

тем не менее, никто не работал с fastlib?
может оно чем то лучше, типа быстрее конвертирует?


 
Sapersky   (2011-08-17 16:19) [5]

Дизеринг (dithering) есть, как уже писали.
http://en.wikipedia.org/wiki/Dither
Но цвета в реализации FastQuant могут несколько искажаться, белый становится сероватым, например.



Страницы: 1 вся ветка

Текущий архив: 2011.12.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
3-1268214255
Spot
2010-03-10 12:44
2011.12.04
Резервирование БД mysql


1-1276169691
kukuruza
2010-06-10 15:34
2011.12.04
Может TerminateProcess вызызвать BSOD? А то система падает.


2-1313514028
Pcrepair
2011-08-16 21:00
2011.12.04
Конвертер BMP 32 bit BGRA в BMP 8 bit c Palette


1-1276094069
madmech
2010-06-09 18:34
2011.12.04
Возникла проблема с генерацией заданного количества сочетаний


4-1252480292
TarenoKostanay
2009-09-09 11:11
2011.12.04
Имя процесса