الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية حفظ صورة في فيجوال بيسك

بدأه جواد في 21 نوفمبر 2011 · 5 رد · 2,451 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

لو سمحتوا اخواني الأحباء

اريد تعديل على هذا المشروع وهو صغير جداً وهو عبارة عن زر واحد فقط

أريد حفظ هذه الصورة بالمقاس هذا

مقاس الصورة بالعرض 1004 بيكسل

ومقاس الصورة بالإرتفاع 650 بيكسل

المشروع مرفق وجاهز ويوجد فيه الكود المناسب لحفظ الصورة ولكن اريده أن يحفظها بالمقاس المطلوب أعلاه

من دون ما أكبر الصورة اللي بالمشروع

5531055019645689.jpg

المشروع مرفق

أنتظر الحلول أخواني الأحباء

Project1.rar

#2

هل يوجد كود اخواني الاحباء لعمل ذالك

جزاكم الله كل خير

#3

ننتظر حلوكم أخواني

بارك الله فيكم

#4

السلام عليكم...

1. في قسم التصريحات العام لكود الـ Form أضف التصريح التالي للدالة StretchBlt لاستعمالها لتحجيم الصورة بالحجم المطلوب (طبعاً كما هو معروف في دوال ويندوز يجب أن يكون التصريح في سطر واحد - أو عدة سطور مربوطة بعلامة الربط _ ):

Private 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

2. و الكود التالي هو نفسه كود الحفظ في مثالك المرفق، مع التعديلات اللازمة موضحة بالعربي:

Private Sub cmdSaveJPG_Click() ' Save as Jpeg
    Dim iresponse As String
    Dim Fname As String
    On Error GoTo JpgErr

    ' ========================= كود مضاف ==========================
    picS.ScaleMode = vbPixels
    picD.ScaleMode = vbPixels
    picD.BorderStyle = 0         ' None
    picD.Visible = False
    picD.Width = ScaleX(1004, vbPixels, ScaleMode)
    picD.Height = ScaleY(650, vbPixels, ScaleMode)
    ' ===================== نهاية الكود المضاف ======================

    picD.Picture = picD.Image   ' copy picS to picD so we can save it

    ' كود موقوف
    'BitBlt picD.hdc, 0, 0, picS.ScaleWidth, picS.ScaleHeight, picS.hdc, 0, 0, vbSrcCopy

    ' لتحجيم الصورة BitBlt بدل StretchBlt كود بديل. نستعمل الدالة
    StretchBlt picD.hdc, 0, 0, picD.ScaleWidth, picD.ScaleHeight, picS.hdc, 0, 0, picS.ScaleWidth, picS.ScaleHeight, vbSrcCopy

    dlgCommon.DialogTitle = "Save As Jpeg"
    dlgCommon.Flags = cdlOFNOverwritePrompt + cdlOFNPathMustExist ' sets flags to overwrite file and pathmustexist
    dlgCommon.Filter = "Jpeg (*.jpg)|*.jpg"                     ' sets the file type
    '===================
    dlgCommon.ShowSave
    '===================
    dlgCommon.Filename = CheckExt(dlgCommon.Filename, ".jpg")

    If SaveJPEG(dlgCommon.Filename, picD, True, 100) Then   ' save pic as Jpeg
        MsgBox "Image saved", vbInformation
    End If

    NSD = False

    Exit Sub
JpgErr:

End Sub

* طبعاً تحجيم الصورة (تمديدها أو تقليصها) قد يؤثر على جودتها.

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#5

الله يعطيك العافية أخي najy_zl

طيب أخي هل نقدر نتحكم بالدقة resolution

لأن حجم الصورة صار فيه شوية تشويش

الله يعطيك العافية وربي يوفق

أنتظر ردك الكريم

وأنتظر ردود الأخوة اللي عندهم حلول لهذه المشكلة

#6

هل نقدر نتحكم بالدقة resolution

لأن حجم الصورة صار فيه شوية تشويش

أنتظر ردودكم أخواني

مواضيع مشابهة