Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
ÇÖZÜLDÜ-dikdörtgen alanın resim pixel renk değerlerini okuma
#1
arkadaşlar bir resimde x,y (50,50)  noktasından itibaren 40 pixel saga doğru 60 pixel aşagı doğru renk degerlerini okumam lazım.


_renkEsik:=2000000;

   Image1.Canvas.Pixels[50,50]>_renkEsik then begin Image1.Canvas.Pixels[50,50]:=clLime; end;

burda 50,50 pixelinin renk değerini karşılaştırıyorum 2 milyondan büyükse renk değiştir yapabiliyorum  ama benim 40x60 pixel bir alanı taramam lazım.  bunun pratik bir yolu var mı 

sayılarımla
Ekmeğimi yazılımdan kazanmıyorum kendi halimde bir şeyler yapıyorum. 49 yaşında emekliyim.
iyne sokmadan yardımcı olacaksan başımın üstünde yerin var.

Cevapla
#2
const _renkEsik = 2000000;


procedure Tform1.resmiTara( image: Timage; x, y, w, h: word );
 var i, j: word;
 begin
   if ( x > image.Width ) or ( y > image.height ) or
      ( x + w > image.width ) or ( y + h > image.height ) then exit;

   for j := y to y + h do
     for i := x to x + w do
      if image.Canvas.Pixels[ i, j ] > _renkEsik then image.Canvas.Pixels[ i, j ] := clLime;
 end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 resmiTara( image1, 1, 1, 40, 60 );     
end;
 


Performans çok önemli değilse ve VCL de yazıyorsan yukarıdaki gibi yapabilirsin.
Performans için bitmap in scanline özelliği kullanılmalı. FMX de ise kullanım şekli daha farklı.
Cevapla
#3
teşekkürler hocam tam istediğim gibi bir algoritma olmuş elinize sağlık bu kodu döngü içinde 10 defa tekrarlatacağım
hız konusunda sorun olmaz diye düşünüyorum.
ama scanline olayını merak ediyorum araştırıp denemeye çalışacağım saygılarımla
teşekkürler
Ekmeğimi yazılımdan kazanmıyorum kendi halimde bir şeyler yapıyorum. 49 yaşında emekliyim.
iyne sokmadan yardımcı olacaksan başımın üstünde yerin var.

Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  çözüldü-screenshot yapmak hk. sadikacar60 8 401 27-03-2020, Saat: 21:11
Son Yorum: sadikacar60
  çözüldü-IdTrivialFTP1 ve IdTrivialFTPServer1 kompenantları hk. sadikacar60 28 809 26-03-2020, Saat: 10:48
Son Yorum: Bay_Y
  [ÇÖZÜLDÜ-SOLVED] StringGrid Satır Taşıma(Move Row) 3ddark 7 314 23-03-2020, Saat: 13:08
Son Yorum: 3ddark
  ÇÖZÜLDÜ-random un istediğimz sayıdan başlaması mümkün mü? sadikacar60 7 369 16-03-2020, Saat: 23:31
Son Yorum: sadikacar60
  ÇÖZÜLDÜ formu dialog alarak kullanmak mümkünmü? sadikacar60 7 306 12-03-2020, Saat: 00:25
Son Yorum: uparlayan



Konuyu Okuyanlar: 1 Ziyaretçi