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

Вниз

палитра в bmp   Найти похожие ветки 

 
>>DEATH<<   (2006-12-20 05:10) [0]

подскажите как поменять количество цветов в image1..надо цветную картинку перевести в чернобелую


 
clickmaker ©   (2006-12-20 10:19) [1]

PixelFormat


 
>>DEATH<<   (2006-12-20 12:05) [2]

это где писать


 
>>DEATH<<   (2006-12-20 12:10) [3]

это где писать


 
Думкин ©   (2006-12-20 12:26) [4]

Image1.Picture.Bitmap.PixelFormat := pf1bit;


 
>>DEATH<<   (2006-12-20 12:35) [5]

чета все получилось черно синее


 
Vovan #2   (2006-12-20 20:48) [6]

>чета все получилось черно синее

Очень даже может быть. Надо установить чёрно-белую палитру. Тут есть пример:
http://www.efg2.com/Lab/ImageProcessing/pf1bit.htm


 
Stexen ©   (2006-12-24 14:14) [7]

Нужно именно два цвета: черный и белый? или обычная картинка с градациями серого???
Вообще говоря, в некоторых случаях бесполезно использовать изменение палитры. Есть фильтр называется он диффузия ошибки, если память мне не изменяет, хорошо подойдет для преобразование в два цвета.


 
Дмитрий Белькевич ©   (2007-01-05 04:56) [8]

Можешь отсюда дёрнуть палитру, и поменяй pixelformat на pf8bit, например.


function CreateBitmap: TBitmap; // &#221;&#242;&#224; &#244;&#243;&#237;&#234;&#246;&#232;&#255; &#241;&#238;&#231;&#228;&#224;&#229;&#242; Bitmap &#241; &#239;&#224;&#235;&#232;&#242;&#240;&#238;&#233; 256 &#227;&#240;&#224;&#228;&#224;&#246;&#232;&#233; &#241;&#229;&#240;&#238;&#227;&#238;.
type
TRGBPalette = array[0..255] of
 packed record
 R, G, B, Reserved: byte;
end;

TBmpFile = packed record
 Hd: TBitmapFileHeader;
 Info: TBitmapInfoHeader;
 Palette: TRGBPalette;
 Data: array[0..255] of byte;
end;

var
f: TBmpFile;
i: word;
s: TMemoryStream;
bmp: TBitmap;
begin
{$IFDEF DEBUG_LOG}
CurrentModule.Add2("GrabThread.CreateBitmap");
{$ENDIF}
bmp := TBitmap.Create;
bmp.PixelFormat := pf8bit;
with f do
begin
 Hd.bfType := $4D42;
 Hd.bfSize := SizeOf(TBmpFile) div 4;
 Hd.bfReserved1 := 0;
 Hd.bfReserved2 := 0;
 Hd.bfOffBits := SizeOf(TBitmapFileHeader) +
  SizeOf(TBitmapInfoHeader) + SizeOf(TRGBPalette);
 Info.biSize := SizeOf(TBitmapInfoHeader);
 Info.biWidth := 16;
 Info.biHeight := 16;
 Info.biPlanes := 1;
 Info.biBitCount := 8;
 Info.biCompression := bi_RGB;
 Info.biSizeImage := 256;
 Info.biXPelsPerMeter := 0;
 Info.biYPelsPerMeter := 0;
 Info.biClrUsed := 0;
 Info.biClrImportant := 0;
 for i := 0 to 255 do
 begin
  Palette[i].R := i;
  Palette[i].G := i;
  Palette[i].B := i;
  Data[i] := i;
 end;
end;
s := TMemoryStream.Create;
try
 s.SetSize(SizeOf(TBmpFile));
 s.Write(f, SizeOf(TBmpFile));
 s.Position := 0;
 bmp.LoadFromStream(S);
finally
 s.Free;
end;
result := bmp;
end;


 
KOSS   (2007-01-07 01:07) [9]

оставь свой mail. есть готовый компонент,который отлино работает с image, для преобразования цветовой палитры.


 
Vovan #2   (2007-01-07 02:48) [10]

Ну начинается. Вопро секундный, а уже с компонентами решения предлагают.



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
2-1190802048
sergnnn
2007-09-26 14:20
2007.10.21
Invalid pointer operation


3-1182110534
mysql
2007-06-18 00:02
2007.10.21
regexp и кириллица в mysql


15-1190168487
Slider007
2007-09-19 06:21
2007.10.21
С днем рождения ! 19 сентября 2007 среда


2-1190921326
Алик
2007-09-27 23:28
2007.10.21
Как правильно очищать буффер?


2-1190880438
F@T@L_Err0r
2007-09-27 12:07
2007.10.21
messagedlg