PDA

نسخه کامل مشاهده نسخه کامل : سوال: چجوري محتويات يك PictureBox رو درون يك فايل عكس ذخيره كنم؟



Honradez
25-12-2008, 11:17
سلام.

من برنامه‌اي نوشته‌ام كه با دستور Picture1.Pset، نقاطي را بر روي يك PictureBox چاپ مي‌كند. حالا يك سوال دارم: چگونه من اين پيكچرباكس را در قالب يك فايل تصويري (با فرصت JPG, BMP, ...) ذخيره كنم؟

من از ويژوال بيسيك 6 استفاده مي‌كنم.

سپاسگزارم. :10:

Open-Source
25-12-2008, 18:09
این کد SavePicture picture1.Image, "d:\1.bmp" را بنویس.

Honradez
25-12-2008, 18:42
این کد savepicture picture1.image, "d:\1.bmp" را بنویس.
شرمنده، ولي عكسي كه مي‌سازه اصلا شبيه اون چيزي نيست كه درون پيكچرباكس هست.

بهرحال ممنون. :10:

Smafias
26-12-2008, 05:29
سلام پهلوون

بفرما اینم راه حل:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

راستی نگفتی مشکل قبلیت حل شد یا نه؟ (جواب وی ام هم که ندادی!)

موفق باشید :11:

Honradez
26-12-2008, 12:29
سلام پهلوون

بفرما اینم راه حل:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

راستی نگفتی مشکل قبلیت حل شد یا نه؟ (جواب وی ام هم که ندادی!)

موفق باشید :11:
سپاسگزارم. مشكل حل شد.

مشكل قبلي هم شكر خدا حل شد. ازتون خيلي ممنونم.

وي ام منظورتون همون پيام خصوصي هست؟ به خدا من كه چيزي دريافت نكردم؟! (لابد اشتباهي شده)

بهرحال ازتون خيلي ممنونم. اميدوارم هركجا هستيد تندرست و شادمان باشيد. :10:

Smafias
28-12-2008, 01:23
visitor message منظورم بود. بهر حال اشکالی نداره. الان دیگه گفتید که حل شده خیالم راحت شد.

بهرحال ازتون خيلي ممنونم.
خواهش میکنم. وظیفم بود.

اميدوارم هركجا هستيد تندرست و شادمان باشيد.
شما هم همچنین :11:

قاهر - Gahir
28-12-2008, 13:47
سلام دوستان یه مشکل مشابه همون بالایی :
وقتی از PSet برای نقطه گذاری استفاده می‌شه و وقتی در PictureBox نقاط رو با Step می ذاری این راه شما جواب نمیده یعنی برنامه بعد از رسم خط و هر چیز دیگر با استفاده از نقطه گذاری Autoredraw رو False میکنه و بعد از Save کردن فقط پس زمینه یا رنگ PictureBox رو نشون میده نه نقاط رو . یعنی بعد از رسم شکل به طور کامل همراه Step برنامه از قسمت کشیده شده عکس نمی کشه ....

حالا کسی هست کمک کنه ...

قاهر - Gahir
29-12-2008, 14:25
آقا کسی نشد پیدا برای حل این پست ما ....

Open-Source
29-12-2008, 18:33
اقا این step چیه میتونی یه خورده توضیح بدی؟؟؟(آخه خیلی وقته vb کار نکردم)

VBYOFSKI
29-12-2008, 19:03
سلام دوستان یه مشکل مشابه همون بالایی :
وقتی از PSet برای نقطه گذاری استفاده می‌شه و وقتی در PictureBox نقاط رو با Step می ذاری این راه شما جواب نمیده یعنی برنامه بعد از رسم خط و هر چیز دیگر با استفاده از نقطه گذاری Autoredraw رو False میکنه و بعد از Save کردن فقط پس زمینه یا رنگ PictureBox رو نشون میده نه نقاط رو . یعنی بعد از رسم شکل به طور کامل همراه Step برنامه از قسمت کشیده شده عکس نمی کشه ....

حالا کسی هست کمک کنه ...

من امتحان کردم ولی اینطور که شما میگید نبود. یه جوراییم نمیتوشه این حرف رو که برنامه خودش بعد رسم Autoredraw رو False میکنه رو قبول کنم.
اینم لینک برنامه.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


اقا این step چیه میتونی یه خورده توضیح بدی؟؟؟(آخه خیلی وقته vb کار نکردم)

یکی از آرگومانهای pset هستش (Optional) :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

حالا کد زیر رو یه نگاه بنداز:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

با این کد ما در اصل 100 تا نقطه در مختصات 100 و 100 ایجاد میکنیم ولی به دلیل استفاده کردن از Step این نقاط روی هم نمیوفتن. Step میاد برای نقطه جدید مختصات نقطه اول رو با مختصات نقطه ای که الان بهش دادی رو با هم جمع میکنه و نقطه رو در مختصات به دست اومده چاپ میکنه. مثلا تو قطعه کد بالا نقطه دوم تو مختصات 200 و 200 چاپ میشه و ..... (امیدوارم خوب توضیح داده باشم.)

Open-Source
29-12-2008, 20:47
سلام دوستان یه مشکل مشابه همون بالایی :
وقتی از PSet برای نقطه گذاری استفاده می‌شه و وقتی در PictureBox نقاط رو با Step می ذاری این راه شما جواب نمیده یعنی برنامه بعد از رسم خط و هر چیز دیگر با استفاده از نقطه گذاری Autoredraw رو False میکنه و بعد از Save کردن فقط پس زمینه یا رنگ PictureBox رو نشون میده نه نقاط رو . یعنی بعد از رسم شکل به طور کامل همراه Step برنامه از قسمت کشیده شده عکس نمی کشه ....

حالا کسی هست کمک کنه ...

نه داداش . منم تست کردم هیچ مشکلی نداره و Autoredraw هم false نمیشه.:13:

قاهر - Gahir
01-01-2009, 21:07
ای دوست کسی [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ... این لینک شما دچار علت است ...

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اگر مشکل لینک نمی حلّد کد مربوطه رو بنویس ما (من و سایرین) توی محیط جم و جورش می کنیم ؛ اصل فقط اینه که بدونم از چه آرگومانی استفاده کنم .

قاهر - Gahir
01-01-2009, 21:09
نه داداش . منم تست کردم هیچ مشکلی نداره و Autoredraw هم false نمیشه.[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ](19).gif

خوب بذار نشه ...
مشکلم اینه که با پایان رسیدن نقطه گذاری با Step بتونیم از اون محتوا عکس ذخیره کنیم ...

قاهر - Gahir
01-01-2009, 21:14
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] VBYOFSKI خوب حالا اینو سیر کن

در همون لینک برنامه‌ای که داده بودی ، منظور از گام ، گام برای شمارنده بود
خوب ؛ حالا این برنامه رو در ویژوال بیسیک 6 آزمایش کن(البته بهتره توی همون فایلی که لینکشو برای دانلود گذاشتی استفاده کنی) ، بعد از کمی صبر یه نمودار کوسینوسی رو رسم می‌کنه . ولی بدون نشون اینکه دقت در گام شمارنده رو برای ما بنمایانه


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


خوب دیدی که به طور پیشفرض این دوستمون اوتودراو پابرجاست
ولی اگر این اوتودراو رو نادرستش کنی ، با اون دقت گام‌هاش برات نشون میده : مثل کد زیر

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


حتی اگر باور نداری که اوتودراو در اول پابرجاست از پیغام کمک بگیر


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


حالا فک کنم منظورمو فهمیدی


فهرست فارسی شده کلمات :
گام = Step
کوسینوس= Cos(alfa)
اوتودراو= AutoDraw
پابرجا = True
نادرست = False
کد= Code
پیغام=MassageBox (MsgBox)
شمارنده= For i=x to y
اینا رو نوشتم چون نمی‌تونستم بین کلمات فارسی از واژه‌ی انگلیسی‌اش استفاده کنم

VBYOFSKI
02-01-2009, 17:02
سلام.
اول اینکه من منظورت رو از Step اشتباه متوجه شدم.
تو این دوتا قطعه کدی که شما گذاشتی هر دو یه کار رو انجام میدن و هر دو هم عکس رو سیو میکنن. فقط فرقشون اینه که چون دومی برای کشیدن نقطه اول Autoredraw نادرست هست کشیده شدن اون نقطه رو نشون میده.

ولی اگر این اوتودراو رو نادرستش کنی ، با اون دقت گام‌هاش برات نشون میده : مثل کد زیر
من دقیق منظورتو از این حرف متوجه نشدم. اگه منظورت اینه که کاربر کشیده شدن خط رو توی Picturebox ببینه که باید بگم کدی که گذاشتی این کار رو نمبکنه و باید اون Autoredraw توی حلقه برداشته بشه که در این صورت عکس دخیره نمیشه چون Autoredraw نادرست هست. اگه منظورت از این حرف چیزه دیگست بهم بگو.
در کل Autoredraw خودش False و True نمیشه و همونطور که برنامه نویس تعیین کرده میمونه تا اینکه برنامه نویس بازم اونو تغییر بده و برای دخیره کردن اشکال کشیده شده با توابع گرافیکی باید Autoredraw درست (True) باشه در غیر اینصورت چیزی ذخیره نمیشه.

قاهر - Gahir
03-01-2009, 08:11
کاربر کشیده شدن خط رو توی Picturebox ببینه که باید بگم کدی که گذاشتی این کار رو نمبکنه و باید اون Autoredraw توی حلقه برداشته بشه که در این صورت عکس دخیره نمیشه چون Autoredraw نادرست هست.
خوب پس با استفاده از اون چطور می تونم کاری که می‌خوام انجام بدم ... (یعنی همون که کاربر بتونه ببینه و بعدش که تموم شد ذخیره شه ) .


در کل Autoredraw خودش False و True نمیشه
منم که ننوشتم خودش False یا True میشه ؛ نوشتم که به طور پیشفرض False .(شاید در تفهیم نوشته ها مشکل شده)

خوب اگه برنامه‌ای داری که با اون بتونم به خواسته‌ی ساده‌ام برسم ، کمک کردی ...

VBYOFSKI
03-01-2009, 11:48
خوب پس با استفاده از اون چطور می تونم کاری که می‌خوام انجام بدم ... (یعنی همون که کاربر بتونه ببینه و بعدش که تموم شد ذخیره شه ) .


اگه Autoredraw توی حلقه رو False کنی و بعد قبل ذخیره شدن عکس Autoredraw رو True کنی این کار رو انجام میده.

قاهر - Gahir
03-01-2009, 19:39
اگر منظورت این جوریه ، کار نمیکنه (یعنی بعد از True شدن AutoRedraw صفحه رو پاک میکنه(Cls) )

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

و بعد صفحه‎ی پاک شده رو ذخیره می‎کنه !!!!!

VBYOFSKI
03-01-2009, 21:11
اگر منظورت این جوریه ، کار نمیکنه (یعنی بعد از True شدن AutoRedraw صفحه رو پاک میکنه(Cls) )

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدو بعد صفحه‎ی پاک شده رو ذخیره می‎کنه !!!!!

من اینکاری رو که گفتم امتحان نکرده بودم و فکر میکردم که درست انجام میشه و اینکه چرا خطوط چاپ شده پاک شدن واسم سواله.

برای اینکه به تونی اون چیزیو که میخوای هم نمایش بدی هم ذخیره کنی میتونی از یه Picturebox دیگه که َAutoredraw اون True هست کمک بگیری که کار ذخیره کردن عکس رو اون انجام بده و کار نمایش عکس رو Picturebox اول. یعنی اینجوری:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

قاهر - Gahir
04-01-2009, 19:58
نقل از دوستمون : Vbyofski


میتونی از یه picturebox دیگه که َautoredraw اون true هست کمک بگیری که کار ذخیره کردن عکس رو اون انجام بده و کار نمایش عکس رو picturebox اول.
په دوست من خدا رحمتت کنه !!! این کارا برای یه برنامه افتضاحه ... ولیک دستت درست ...

برا منم یه سوال شده بود و هست و لیک از دست برنامه‌های ساخت گرا ...

VBYOFSKI
05-01-2009, 12:02
نقل از دوستمون : Vbyofski

په دوست من خدا رحمتت کنه !!! این کارا برای یه برنامه افتضاحه ... ولیک دستت درست ...

برا منم یه سوال شده بود و هست و لیک از دست برنامه‌های ساخت گرا ...

حرفتو قبول دارم يكم نامعقوله ولي اينجوري به خواستت ميرسي. به نظر من كاربر نبايد تو برنامه حتما هموني رو كه ميبينه ذخيره كنه.

قاهر - Gahir
05-01-2009, 15:19
حرفتو قبول دارم يكم نامعقوله ولي اينجوري به خواستت ميرسي. به نظر من كاربر نبايد تو برنامه حتما هموني رو كه ميبينه ذخيره كنه.
خوب نباید هم برای برنامه نویسی از روش فریفتگاری استفاده کرد.(اونم با برنامه‌ای فقط یکی دو دستور لازمه تا به خواستت برسی) خوب ؛ این برای برنامه محلی (pan) خوبه ولی برای برنامه‌ی سنگین ابدا ...

mzahed
09-04-2011, 10:30
سلام.
خسته نباشيد...
چطور مي تونم عكس اي خونده شده از بانكو به صورت جداگانه با پسوند JPG ذخيره كنم؟؟؟؟؟؟:41:

gfddfs
03-11-2011, 04:21
سلام
من برنامه‌اي نوشته‌ام كه با دستور Picture1.Pset، نقاطي را بر روي يك PictureBox چاپ مي‌كند.ولی وقتی پنجره رو minimize میکنم یا پنجره ای روی برنامه خودم حرکت می دهم نقاط رسم شده پاک میشه چکار کنم؟

behzad74
30-11-2011, 22:53
میتونی با استفاده از CommonDialog محل ذخیره کردن عکس رو مشخص کنی
اول یک common dialog به فرمت اضافه کن
بعد مشخصه ی Filter رو باید با فرمت های مورد نظرت پر کنی (مثلا : JPG|*.jpg|BMP|*.bmp)
بعد مثلا توی یک دکمه برای ذخیره picturebox به کار میره ؛ این کد رو بنویس
Savepicture (Picture1,Commondialog1.filename)
حالا محلی که به وسیله ی کاربر مشخص میشه در اونجا ذخیره میشه