Главная страница
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.01 c
6-1246383174
ganzzz
2009-06-30 21:32
2011.12.04
Кто нибудь встречал заголовок wget?


15-1313008190
Юрий
2011-08-11 00:29
2011.12.04
С днем рождения ! 11 августа 2011 четверг


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


2-1313560814
Oleg_teacher
2011-08-17 10:00
2011.12.04
Взаимодействие ворд+делфи


15-1312943870
Максон
2011-08-10 06:37
2011.12.04
Реализация полного формата даты в отчете