المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : اظهار الصورة على الفورم بيكسل تلو الآخر


Rover
26-03-2008, 02:58 PM
كيف يمكن اظهار الصورة على الفورم بيكسل تلوا الآخر ( نفس تقنية الماسح ) .. عن طريق ربطها مع Timer

و تقبلوا بقبول فائق التقديرو الأحترام ...

merouane
06-04-2008, 03:38 PM
السلام عليكم

الأمر بسيط

بواسطة Timer يمكن أن نظهر الصورة بيكسل تلو الأخر

timer أسميته TimerPixel


var
c : TColor;
x : Integer = 0;
y : Integer = 0;

//------------------------------------Timer قبل بداية عمل
image2.Height := image1.Picture.Graphic.Height;
image2.Width := image1.Picture.Graphic.Width;
// نجعل لون خلفية الصورة نفسه لون الأرضي
image2.Canvas.Brush.Color := Form1.color;
Image2.Canvas.FillRect(rect(0,0,Image2.Width, Image2.height));
//-------قد تستغني عن التالي إذا لم ترد صورة شفافة
C := image1.Canvas.Pixels[0,0];
//------------------------------------------------------------------

procedure TForm1.TimerPixelTimer(Sender: TObject);
begin

if (image1.Canvas.Pixels[x,y]<> C) then // لعدم إظهار لون معين
image2.Canvas.Pixels[x,y] := image1.Canvas.Pixels[x,y];

if x < image1.Picture.Width then
x := x+1
else
begin
x := 0;
if y < image1.Picture.Height then
y := y+1
else
TimerPixel.Enabled := false;
end;
end;

قد تجد أحسن من هذه الشيفرة .. لكنها قد تجعلك على الطريق

مثال كامل تجده في المرفقات

تحياتي :)