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

نسخة كاملة : تحويل jpg الى bmp
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
لقد برمجت هذا البرنامج بنفسي لتحويل jpg الى bmp
بانتظار ابداء آراءكم فيه
السلام عليكم ورحمة الله
برنامج غاية في الروعة. لكن وجدت به خطأ
عند فتح البرناج والضغط مثلا مباشرة على كبسة الحفظ
وخترت بعدها مثلا... cancel .... عندها يحدث خلل Wink
ممكن في النسخة القادمة تكون بلا اخطأ ان شاء الله؟
بارك الله فيك وجزاك الله خيرا
والسلام عليكم
السلام عليكم
أعتذر عن التدخل
الأخ محمد, ربما قد يعتبر خطأ ,, لكن ما عليك سوى تعديل الكود في الزر تحويل
من :
PHP كود :
SaveDialog1.Execute ;
//The Code ... 
إلى :
PHP كود :
if SaveDialog1.Execute Then
// The Code ... 
بالتوفيق
اها نعم... بارك الله فيك.لم اكن اعلم هذا.
يعني بارك الله فيك على الإفادة.
والسلام عليكم ورحمة الله
نفس الشيء+استغلال الحفظ بقواعد البيانات ، بعد تغيير اللاحقة Jpg أو Jpeg إلى Bitmap
للإفادة أزي:
كود تحويل Ico إلى Bmp
كود :
[align=left]var[/align] [align=left]Icon : TIcon;[/align] [align=left]Bitmap : TBitmap;[/align] [align=left] begin[/align] [align=left] if OpenDialog1.Execute then begin[/align] [align=left] Icon := TIcon.Create;[/align] [align=left] Bitmap := TBitmap.Create;[/align] [align=left] Icon.LoadFromFile(OpenDialog1.FileName);[/align] [align=left] Bitmap.Width := Icon.Width;[/align] [align=left] Bitmap.Height := Icon.Height;[/align] [align=left] Bitmap.Canvas.Draw(0, 0, Icon)[/align] [align=left] Bitmap.SaveToFile('c:\picture.bmp');[/align] [align=left] Icon.Free;[/align] [align=left] Bitmap.Free;[/align]

كود لاستخراج ico من ملف bmp
كود :
[align=left]var[/align] [align=left]IconSizeX: integer;[/align] [align=left]IconSizeY: integer;[/align] [align=left] [/align] [align=left]XOrMask: TBitmap;[/align] [align=left]IconInfo: TIconInfo;[/align] [align=left]Icon: TIcon;[/align] [align=left]begin[/align] [align=left]IconSizeX := GetSystemMetrics(SM_CXICON);[/align] [align=left]IconSizeY := GetSystemMetrics(SM_CYICON);[/align] [align=left]XOrMask := TBitmap.Create;[/align] [align=left]XOrMask.Width := IconSizeX;[/align] [align=left]XOrMask.Height := IconSizeY;[/align] [align=left]XOrMask.LoadFromFile('C:\picture.bmp');{}[/align] [align=left] [/align] [align=left]Form1.Canvas.Draw(IconSizeX * 4, IconSizeY, XOrMask);[/align] [align=left]{Create a icon}[/align] [align=left]Icon := TIcon.Create;[/align] [align=left]IconInfo.fIcon := true;[/align] [align=left]IconInfo.xHotspot := 0;[/align] [align=left]IconInfo.yHotspot := 0;[/align] [align=left]IconInfo.hbmMask := XOrMask.Handle;[/align] [align=left]IconInfo.hbmColor := XOrMask.Handle;[/align] [align=left]Icon.Handle := CreateIconIndirect(IconInfo);[/align] [align=left]{Destroy the temporary bitmaps}[/align] [align=left]// AndMask.Free;[/align] [align=left]XOrMask.Free;[/align] [align=left]{Draw as a test}[/align] [align=left]Form1.Canvas.Draw(IconSizeX * 6, IconSizeY, Icon);[/align] [align=left]{Assign the application icon}[/align] [align=left]Application.Icon := Icon;[/align] [align=left]{Force a repaint}[/align] [align=left]InvalidateRect(Application.Handle, nil, true);[/align] [align=left]{Free the icon}[/align] [align=left]Icon.Free;[/align] [align=left]end;[/align]

تحويل Bmp إلى Jpeg
use ......jpeg

كود :
[align=left]var[/align] [align=left] JPEG: TJPEGImage;[/align] [align=left] Bitmap: TBitmap;[/align] [align=left]begin[/align] [align=left] if OpenDialog1.Execute then[/align] [align=left] begin[/align] [align=left] JPEG := TJPEGImage.Create;[/align] [align=left] Bitmap := TBitmap.Create;[/align] [align=left] try[/align] [align=left] Bitmap.LoadFromFile(OpenDialog1.FileName);[/align] [align=left] JPEG.Assign(Bitmap);[/align] [align=left] Image1.Picture.Assign(JPEG);[/align] [align=left] finally[/align] [align=left] JPEG.SaveToFile('C:\E.jpg');[/align] [align=left] JPEG.Free;[/align] [align=left] Bitmap.Free;[/align] [align=left] end;[/align] [align=left]end;[/align]


كووود لتغيـــر حجم الصــورة

كود :
[align=left]function ResizeBmp(bitmp: TBitmap; wid, hei: Integer): Boolean;[/align] [align=left]var[/align] [align=left] TmpBmp: TBitmap;[/align] [align=left] ARect: TRect;[/align] [align=left]begin[/align] [align=left] Result := False;[/align] [align=left] try[/align] [align=left] TmpBmp := TBitmap.Create;[/align] [align=left] try[/align] [align=left] TmpBmp.Width := wid;[/align] [align=left] TmpBmp.Height := hei;[/align] [align=left] ARect := Rect(0,0, wid, hei);[/align] [align=left] TmpBmp.Canvas.StretchDraw(ARect, Bitmp);[/align] [align=left] bitmp.Assign(TmpBmp);[/align] [align=left] finally[/align] [align=left] TmpBmp.Free;[/align] [align=left] end;[/align] [align=left] Result := True;[/align] [align=left] except[/align] [align=left] Result := False;[/align] [align=left] end;[/align] end;
ثم الاستغلال مثلا :
كود :
[align=left]begin[/align] [align=left] ResizeBmp(Image1.Picture.Bitmap,[COLOR=Red]200[/COLOR],[COLOR=Red]700[/COLOR])[/align] [align=left]end;[/align]

و السلام عليكم