![]() |
|
PByteArray Tcolor cevirme? - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6) +--- Konu Başlığı: PByteArray Tcolor cevirme? (/showthread.php?tid=5207) |
PByteArray Tcolor cevirme? - woywod - 25-08-2020 Merhabalar ben bir resim dosyasını okutuyorum 8bit olarak bunlar Byte olarak geliyor ama dogru rengi alamıyorum. Hata Nerede acaba ? procedure TForm1.BitBtn1Click(Sender: TObject);
type
pbyte = PByteArray; // use a PByteArray for pf8bit color
var
x,y : Integer;
renk:TColor;
BitMap : TBitMap;
P: pbyte;
begin
BitMap := TBitMap.create;
try
BitMap.LoadFromFile('A.bmp');
BitMap.PixelFormat:=pf8bit;
for y := 0 to BitMap.Height - 1 do
begin
P :=BitMap.ScanLine[y];
for x := 0 to BitMap.Width -1 do
Begin
renk:=(P[x]); //Burda byte Tcolor ' dönüstüremedim
end;
inc(x ,3);
end;
finally
BitMap.Free;
end;
end;
PByteArray Tcolor cevirme? - sabanakman - 27-08-2020 ByteArray'ı stream olarak kayıt edin ve streamden yüklemeye çalışın resmi. Örnek: https://www.delphican.com/showthread.php?tid=3071 Cvp: PByteArray Tcolor cevirme? - woywod - 27-08-2020 (27-08-2020, Saat: 18:52)sabanakman Adlı Kullanıcıdan Alıntı: ByteArray'ı stream olarak kayıt edin ve streamden yüklemeye çalışın resmi. Tesekur ederım. Cvp: PByteArray Tcolor cevirme? - woywod - 28-08-2020 8 bit resimden Renk Alabiliyoruz artık : ![]() Bunu da ögrenmiş olduk.. palet degerlerinin içine atıyoruz.. procedure TForm1.Button1Click(Sender: TObject);
type
pbyte = PByteArray; // use a PByteArray for pf8bit color
var
x,y : byte;
renk1:TColor;
BitMap : TBitMap;
P: pbyte;
say,i:Integer;
renk: array [0..255] of TColor;
palet:TMaxLogPalette;
fBitmapPalEntries: Cardinal;
R, G, B: Byte;
begin
say:=0;
BitMap := TBitMap.create;
BitMap.LoadFromFile('A.bmp');
try
BitMap.PixelFormat:=pf8bit;
fBitmapPalEntries := GetPaletteEntries(Bitmap.Palette, 0, 256,palet.palPalEntry);
for i := 0 to fBitmapPalEntries - 1 do
begin
renk[i] :=
palet.palPalEntry[i].PeBlue shl 16
+ palet.palPalEntry[i].PeGreen shl 8
+ palet.palPalEntry[i].PeRed;
end;
for y := 0 to BitMap.Height - 1 do
begin
P :=BitMap.ScanLine[y];
for x := 0 to BitMap.Width -1 do
Begin
R := palet.palPalEntry[P[x]].peRed;
G := palet.palPalEntry[P[x]].peGreen;
B := palet.palPalEntry[P[x]].peBlue;
renk1:=RGB(r,g,b) ;//Burda Renk degerini alabılıyoruz..
end;
end;
finally
BitMap.Free;
end;
end;
PByteArray Tcolor cevirme? - maxpaynen - 29-06-2021 R := palet.palPalEntry[P[x]].peRed; G := palet.palPalEntry[P[x]].peGreen; B := palet.palPalEntry[P[x]].peBlue; renk1:=RGB(r,g,b) Yerine R=P^[x].rgbtRed; G=P^[x].rgbtGreen; B=P^[x].rgbtBlue; renk1:=RGB(r,g,b);kullanılabilir. P = PByte , rgb = Byte olduğundan muhtemelen çalışır. |