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

مشاهدة النسخة كاملة : ضغط الصور في دلفي


galag8
10-12-2008, 01:44 PM
بسم الله الرحمن الرحيم
السلام عليكم ورحمه الله تعالي وبركاته

كيف اقوم بضغط الصور في دلفي اي تصغير حجمها اذا كانت bmp/jpg

B.M.AbdelAziZ
10-12-2008, 04:10 PM
أن كانت الصور bmp يمكن تحويلها الى jpg للحصول على حجم اصغر
ان كانت الصور jpeg لن تستطيع ضغطها لانها اصلا مضغوطة
هناك منها ما يسمى jpeg2000 حيث تكون الخواريزمية احسن قليلا
والسلام عليكم

galag8
11-12-2008, 08:36 AM
شكرا جزيلا

galag8
15-01-2011, 06:08 AM
سلام عليك استاذ عبد العزيز اعود اليك بعد مده واجدد سؤالي اعمل علي برنامج لضغط الصور اذا كانت bmp ساقوم بتحويلها الي jpg اما اذا كانت jpg كيف اقوم بتحويلها الي jpg2000 الشرح اذا امكن بمثال مرفق وايضا بقيه الامتدادات مثال gif,png,

B.M.AbdelAziZ
15-01-2011, 12:27 PM
وعليكم السلام ورحمة الله

ابحث، هناك الكثير من الخيارات امامك

JPEG 2000 for Pascal
code.google.com/p/pasjpeg2000
معه مثال للاستخدام

ImageFileLib
www.logicnet.dk/lib

المزيد بصيغ مختلة

torry.net/pages.php?id=107
efg2.com/Lab/Library/Delphi/Graphics/FileFormatsAndConversion.htm


بالتوفيق

Lam.Abdeldjalil
15-01-2011, 12:44 PM
السلام عليكم

إضافة :) : بالنسبة لإصدارات دلفي 2009 و ما بعد
jpg -> png / gif


uses
...
Jpeg, pngimage, GIFImg ;

JP : TJPegImage;
png1 :TPngImage;
GIF1:TGIFImage;
MyFormat : Word;
AData : THandle;
APalette : HPALETTE;

begin
JP := TJPegImage.Create;
png1 :=TPngImage.Create;
GIF1 := TGIFImage.Create;
try
JP.LoadFromFile('Untitled.jpg');
JP.SaveToClipBoardFormat( MyFormat,AData,APalette);
ClipBoard.SetAsHandle(MyFormat,AData);

png1.LoadFromClipboardFormat( MyFormat,AData, APalette);
png1.SaveToFile('mypng.png');

GIF1.LoadFromClipboardFormat( MyFormat,AData, APalette);
GIF1.SaveToFile('mygif.gif');
finally
JP.Free;
png1.Free;
GIF1.Free;
end;
بالتوفيق

B.M.AbdelAziZ
15-01-2011, 01:42 PM
مرحبا اخي عبد الجليل
jpg -> png / gif
التحويل من jpg الى png يزيد حجم الملف
التحويل الى gif يفقد الصورة دقتها
الصيغة gif لا تقبل اكثر من 256 لون

هناك ايضا الصيغة الجديدمن Google المسماة WebP
ربما لا يوجد مكون حتى الان لدلفي او Pascal يتعامل معها، تمرين جيد لمن لديه وقت

Lam.Abdeldjalil
15-01-2011, 06:00 PM
السلام عليكم

بارك الله فيك أستاذ عبد العزيز على المعلومات :)
أعتذر لم أقرأ السؤال جيدا حسبته تحويل jpg -> png / gif

تعديل على الكود السابق : bmp->jpg/png/gif

Bmp : TBitmap;
JP : TJPegImage;
png1 :TPngImage;
GIF1:TGIFImage;
MyFormat : Word;
AData : THandle;
APalette : HPALETTE;

begin
Bmp := TBitmap.Create;
JP := TJPegImage.Create;
png1 :=TPngImage.Create;
GIF1 := TGIFImage.Create;
try
Bmp.LoadFromFile('image.bmp');
// Bmp.SaveToClipBoardFormat( MyFormat,AData,APalette);
// ClipBoard.SetAsHandle(MyFormat,AData);

JP.Assign(Bmp);
JP.SaveToFile('myjpg.jpg');

//png1.LoadFromClipboardFormat( MyFormat,AData, APalette);
png1.Assign(bmp);
png1.SaveToFile('mypng.png');

//GIF1.LoadFromClipboardFormat( MyFormat,AData, APalette);
GIF1.Assign(bmp);
GIF1.SaveToFile('mygif.gif');
finally

Bmp.Free;
JP.Free;
png1.Free;
GIF1.Free;
end;
التجربة على ملف bmp -> 2305 ko أعطى النتائج
jpg -> 117 ko
png -> 402 ko
Gif -> 128 ko

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

galag8
01-02-2011, 03:10 PM
شكرا استاذ عبد العزيز وشكا استاذ عبد الجليل لكني اعمل علي دلفي 7 وهذا الكود لدلفي 2009

kachwahed
01-02-2011, 07:15 PM
مكون دلفي png الشهير، نسخة من torry
http://www.torry.net/vcl/graphics/otherformats/pngimage.zip
المزيد:
http://delphi.pjh2.de/articles/graphic/png.php

galag8
21-02-2011, 04:31 PM
بارك الله فيكم جميعا فقد استفدت من هذه الحزم وكنت احاول اظهار حجم ملف الصوره في عنصر ليبل ولكن لم اعرف الداله التي تقوم بعرض حجم ملف الصوره الموجوده علي عنصر ايمج

kachwahed
17-03-2011, 07:54 PM
هناك أيضا NanoJPEG مكتوبة بـ C لـ Martin Fiedler
قام بتحويلها Ville Krumlinde إلى دلفي
http://www.emix8.org/static.php?page=nanoJpeg

B.M.AbdelAziZ
23-10-2011, 09:02 AM
myjpeg/jpegdec للتعامل مع صور JPEG

معلومات (الرابط الاصلي يقود لموقع ثاني synopse.info كلاهما لA.BOUCHEZ )
http://bouchez.info/myjpeg.html

التحميل
http://bouchez.info/files/MyJpeg.zip
http://synopse.info/files/jpegdec.zip