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

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

اخواني كيف يتم رسم ايطار على الصوره
كود :
http://im35.gulfup.com/ARrZN.png
و عند الضغط على زر تصبح بهذا الشكل
كود :
http://im35.gulfup.com/G7gCX.png
و بارك الله بالجميع
السلام عليكم
هذه محاولة على السريع
PHP كود :
function FrameBitmap(srcbmp:TBitmap;const FrameColor:TColor=clBlack;FrameWidth:Integer=0):TBitmap;
var
bmp:TBitmap;
w:integer;
begin
 bmp
:=TBitmap.Create;
 
bmp.Width :=srcbmp.Width  ;
 
bmp.Height:=srcbmp.Height ;
 
bmp.Canvas.Draw(0,0,srcbmp);
 
bmp.Canvas.Brush.Color:= FrameColor;
 
bmp.Canvas.Pen.Color:= FrameColor;
 if 
FrameWidth <>0 then
   begin
    
for w := 0 to  FrameWidth do
    
bmp.Canvas.FrameRect(Rect(w,w,bmp.Width-w,bmp.Height-w));
   
end else
    
bmp.Canvas.FrameRect
    
(Rect(0,0,bmp.Width,bmp.Height));

 
Result:= bmp;
 
//bmp.Free;
end; 
الاستعمال
PHP كود :
Self.Image2.Picture.Bitmap:=FrameBitmap(Self.Image1.Picture.Bitmap,clRed,4); 

يجدر الذكر أن الصورة لازم تكون من نوع bmp
و عليكم السلام
مجرد فكرة: ضع صورتين في نفس المكان أحدهما بإيطار و الأخرى بدون إيطار و إجعل خاصية Visible لذات الإيطار False تتفعل بعد الضغط
هناك برنامج يشبه ذلك ألقي نظرة:
[URL="http://www.delphi4arab.net/forum/attachment.php?attachmentid=2871&d=1311453884"]
http://www.delphi4arab.net/forum/attachm...1311453884[/URL]
SMP3 كتب :هذه محاولة على السريع
اشكر مجهودك السريع و لاكن الكود لم يفلح معي لان الصوره من نوع Jpg
لؤي كتب :مجرد فكرة: ضع صورتين في نفس المكان أحدهما بإيطار و الأخرى بدون إيطار و إجعل خاصية visible لذات الإيطار false تتفعل بعد الضغط
شكرا و لاكن لم يفلح معي
إقتباس :لان الصوره من نوع Jpg
تفضل :
PHP كود :
function FrameBitmap(srcbmp:TGraphic;out DstBmp:TBitmap; const FrameColor:TColor=clBlack;FrameWidth:Integer=0):TBitmap;
var
w:integer;
begin
 
if not Assigned(DstBmp) then
    DstBmp
:=TBitmap.Create;

 
DstBmp.Width :=srcbmp.Width  ;
 
DstBmp.Height:=srcbmp.Height ;

 
DstBmp.Canvas.Draw(0,0,srcbmp);
 
DstBmp.Canvas.Brush.Color:= FrameColor;
 
DstBmp.Canvas.Pen.Color:= FrameColor;

 if 
FrameWidth <>0 then
   begin
    
for w := 0 to  FrameWidth do
    
DstBmp.Canvas.FrameRect(Rect(w,w,DstBmp.Width-w,DstBmp.Height-w));
   
end else
    
DstBmp.Canvas.FrameRect
    
(Rect(0,0,DstBmp.Width,DstBmp.Height));

 
Result:= DstBmp;

end; 

الاستعمال :
PHP كود :
var bmp:TBitmap ;
begin
bmp
:=TBitmap.Create;
Self.Image2.Picture.Graphic:=FrameBitmap(Self.Image1.Picture.Graphic,bmp,clRed,4);
bmp.Free;
end;