delphi4arab منتديات دلفي للعرب

نسخة كاملة : تكبير الصورة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كيف يتم تكبير الصورة وحساب المسافة بين بيكسلين

ramijz

السلام عليكم

تستطيع التحكم بأي صورة في الدلفي عن طريق Canvas وبكل الاحول في المشاركة القادمة سوف اضع مثال عملي ان شاء الله لكن علي ان اقوم بالبحث عن هذه الشيفرة في ارشيفي لاني عملت بها منذ 7 سنوات يومها كنت احاول تقليد لعبة red alert ولكن الملل قتلني

سلام
أولا: السلام عليكم ورحمة الله
راجع هذا:
كود سورس GraphicEffect
بالتوفيق.
الجواب موجود مع اختصاص برمجيات سنة رابعة
السلام عليكم

الكود التالي، محاولة مبسطة:
يمكن تحسين السرعة باستخدام ScanLine
كما يمكن تطويره تحديد نسب تكبير وتصغير أكثر مرونة.

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
  
x, y : integer;
  
Bmp1, Bmp2: TBitmap;
  
x2, y2, i, j: integer;
  
iScaleW, iScaleH: integer;
begin
  iScaleW 
:= 2;
  
iScaleH := 2;

  
Bmp1 := Image1.Picture.Bitmap;
  
Bmp2 := Image2.Picture.Bitmap;


  
Bmp2.Width := Bmp1.Width * iScaleW;
  
Bmp2.Height := Bmp1.Height * iScaleH;

  for 
y := 0 to (Bmp1.Height -1) do
  
begin
    y2 
:= (y * iScaleH)+ 1;
    for 
x := 0 to (Bmp1.Width -1) do
    
begin
      x2 
:= (x * iScaleW) + 1;
      for 
i := 0 to iScaleH - 1  do
      
begin
        
for j := 0 to iScaleW -1  do
        
begin
          Bmp2
.Canvas.Pixels[x2 +j , y2 + i] := Bmp1.Canvas.Pixels[x, y];
        
end;
      
end;
    
end;
  
end;

  
Image2.Width := Bmp2.Width;
  
Image2.Height := Bmp2.Height;

end;