تكبير الصورة
#1
كيف يتم تكبير الصورة وحساب المسافة بين بيكسلين
الرد
#2
السلام عليكم

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

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

الكود التالي، محاولة مبسطة:
يمكن تحسين السرعة باستخدام 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; 
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم