الرسالة الأصلية كتبت بواسطة rushin_911
أوه طيب اقتراح أخير و هو إنك تحط إمكانية إضافة صور و إن كانت أكبر من الحجم الممكن يتم تصغيرها إلى الحجم الممكن أوتوماتيكيّاً (أعرف إن هذا ممكن يكون صعب ، ولكن قصدي لو كان بالإمكان عمله
)
بسم الله الرحمن الرحيم
السلام عليكم...
لقد كتبت الكود لعملية تغيير حجم الصورة (تكبير أو تصغير) لتملأ الخلفية :
بالعكس ... سهل جداً فلقد استخدمت لذلك دالة واحدة فقط من دوال API وهي StretchBlt
وهاهو كامل الكود للعملية :
كود:
Public Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Picture1.AutoSize = True
Picture1.Picture = LoadPicture(CM1.FileName)
StretchBlt Picture3.hdc, 0, 0, 400, 150, Picture1.hdc, 0, 0, (Picture1.ScaleWidth / 15), (Picture1.ScaleHeight / 15), ScrCopy
Picture3.Refresh
SavePicture Picture3.Image, App.Path & "/temp.bmp"
Picture1.AutoSize = False
Picture1.Height = 2250
Picture1.Width = 6000
Picture1.Picture = LoadPicture(App.Path & "/temp.bmp")