PDA

View Full Version : سوال: مشخص کردن مکان ذخیره عکس گرفته شده از فرم



Hassan2500
سه شنبه 31 مرداد 1391, 02:19 صبح
سلام

چه کدی باید نوشته بشه که مکان ذخیره عکس رو در کد زیر که مربوط به یکی از دوستان است خودم مشخص کنم و همچنین میخوام فرمت عکس jpg باشه اگه میشه برام ویرایشش کنید طبق این چیزائی که میخوام

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Const KEYEVENTF_KEYUP = &H2

Function GetScreenBitmap(Optional ActiveWindow As Boolean) As Picture

Dim pic As StdPicture
Set pic = Clipboard.GetData(vbCFBitmap)
' Alt-Print Screen captures the active window only
If ActiveWindow Then
' Press the Alt key
keybd_event vbKeyMenu, 0, 0, 0
End If
' Press the Print Screen key
keybd_event vbKeySnapshot, 0, 0, 0
DoEvents
' Release the Print Screen key
keybd_event vbKeySnapshot, 0, KEYEVENTF_KEYUP, 0
If ActiveWindow Then
' Release the Alt key
keybd_event vbKeyMenu, 0, KEYEVENTF_KEYUP, 0
End If
DoEvents
' return the bitmap now in the clipboard
Set GetScreenBitmap = Clipboard.GetData(vbCFBitmap)
' restore the original contents of the clipboard
Clipboard.SetData pic, vbCFBitmap
End Function

Private Sub Command1_Click()
SavePicture GetScreenBitmap(True), "c:\a.bmp"
End Sub

the king
سه شنبه 31 مرداد 1391, 02:49 صبح
سلام

چه کدی باید نوشته بشه که مکان ذخیره عکس رو در کد زیر که مربوط به یکی از دوستان است خودم مشخص کنم و همچنین میخوام فرمت عکس jpg باشه اگه میشه برام ویرایشش کنید طبق این چیزائی که میخوام


اینجا اش :

SavePicture GetScreenBitmap(True), "c:\a.bmp"

برای خروجی گرفتن JPEG خود ویژوال بیسیک 6 همچین قابلیتی نداره، یا باید از +GDI استفاده کنید یا کمپوننت های پردازش تصویر مثل Intel JPEG Library
یا فایل های جانبی تبدیل تصویر مثل bmp2jpg

مثال پیوستی رو ببینید :

91575

Hassan2500
سه شنبه 31 مرداد 1391, 12:40 عصر
من میخوام که وقتی کامند1 رو زدم مکان ذخیره عکس رو خودم مشخص کنم و این سورسی که گذاشتید اون چیزی نیست که من میخوام

m.4.r.m
سه شنبه 31 مرداد 1391, 13:10 عصر
Commondialog.ShowOpen
SavePicture GetScreenBitmap(True), CommonDialog.Fielname



کامپوننت Microsoft Common Dialog Control رو هم اضافه می کنی .

Hassan2500
سه شنبه 31 مرداد 1391, 19:58 عصر
جناب m.4.r.m از کد شما استفاده کردم اما ارور میده حالا از دوستان میخوام این سورس رو برام درست کنن خودم هر کاری کردم نتونستم و مشکلاتش اینه

1- هنگام اجرای برنامه ارور میده
2- میخوام بجای فرمت Bitmap فرمت JPG گذاشته بشه
3- وقتی صفحه مشخص کردن مکان ذخیره عکس باز میشه مکان رو خودم مشخص کنم کجای کامپیوتر ذخیره بشه بعد با زدن دکمه Save همون جا ذخیره بشه

91640

setroyd
چهارشنبه 01 شهریور 1391, 00:46 صبح
درست شد همونه که میخوای ؟

Hassan2500
چهارشنبه 01 شهریور 1391, 02:35 صبح
سورس پست 6 دوتا مشکل داره که اگه برطرفشون کنید ممنون میشم

1- وقتی فرم Save As روی برنامه قرار میگیره و دکمه Save رو میزنیم از فرم Save As هم عکس میندازه میخوام فقط از برنامه اصلی عکس بندازه

91670

2- وقتی ضربدر فرم Save As رو میزنیم یه ارور ظاهر میشه میخوام این ارور رو هم برطرف کنید

Run-time error '53':
File not found

setroyd
چهارشنبه 01 شهریور 1391, 14:38 عصر
برای error شما بالا تو قسمت general بنویس on error resume next این از error و اینکه برنامه از فرم شما میندازه مشکلی نیست !

m.4.r.m
چهارشنبه 01 شهریور 1391, 16:48 عصر
Commondialog.ShowSave
SavePicture GetScreenBitmap(True), CommonDialog.Fielname



کامپوننت Microsoft Common Dialog Control رو هم اضافه می کنی .

دستور اصلاح شد حتما اجرا خواهد شد . تست کن

Hassan2500
چهارشنبه 01 شهریور 1391, 20:32 عصر
برنامه اجرا میشه و عکس میگیره اما من نمیخوام که عکس از Save As هم گرفته بشه فقط میخوام از برنامه ام عکس گرفته بشه تصویر پست 7 رو نگاه کنید میخوام اینطوری نباشه

setroyd
چهارشنبه 01 شهریور 1391, 23:39 عصر
شما باید از کد نویسی دیگه استفاده کنی که این اشکال رو نداشته باشه شما کد نویسیت حتما اشتباه است . شما از تابع printwindow در استفاده کنی بهتره .

Hassan2500
پنج شنبه 02 شهریور 1391, 20:36 عصر
از دوستان کسی میتونه یه سورسی مثل سورس پست 6 قرار بده که فقط از خود فرم عکس بندازه و محل ذخیره عکس رو هم خودم مشخص کنم

محسن واژدی
پنج شنبه 02 شهریور 1391, 23:31 عصر
سلام علیکم
کد های زیر را جایگزین روال Command1_Click کنید: Private Sub Command1_Click()
CommonDialog1.FileName = ""
CommonDialog1.ShowSave
DoEvents
If CommonDialog1.FileName > "" Then
SavePicture GetScreenBitmap(True), CommonDialog1.FileName
End If
End Sub


موفق باشید