ذخیره محتویات Picturebox با کیفیت بالا

a.1397

New Member
اساتید بزرگوار توروخدا کمک کنین که دارم دیونه میشم!!:-?
آقا من یه picturebox دارم که خب تصویری داخلش هست و با رویدادهای MouseDown و MouseUP داخلش Shape هایی میکشم. تااینجا مشکلی نیست. خاستین بگین تا کدهاش رو بزارم.
مشکلم پرینت هستش یا ذخیره محتویات picturebox. که کیفیت پرینت یا عکس ذخیره شده بسیار پایین تر از عکس اصلیم میشه!
با این چند خط کد تصویر داخل picturebox و shapeهای کشیده شده رو به فرمت TIFF ذخیره میکنم:
Dim bitmap = New Bitmap(PictureBox1.Width, PictureBox1.Height)
PictureBox1.DrawToBitmap(bitmap, PictureBox1.ClientRectangle)
Dim PATH = Application.StartupPath & "\TIFF\Final.TIFF"
bitmap.Save(PATH, System.Drawing.Imaging.ImageFormat.Tiff)
اینم نمونه های کیفیت تصویر اصلیم و تصویر ذخیره شده:
a2.jpg
a11.jpg
 

the_king

مدیرکل انجمن
اساتید بزرگوار توروخدا کمک کنین که دارم دیونه میشم!!:-?
آقا من یه picturebox دارم که خب تصویری داخلش هست و با رویدادهای MouseDown و MouseUP داخلش Shape هایی میکشم. تااینجا مشکلی نیست. خاستین بگین تا کدهاش رو بزارم.
مشکلم پرینت هستش یا ذخیره محتویات picturebox. که کیفیت پرینت یا عکس ذخیره شده بسیار پایین تر از عکس اصلیم میشه!
با این چند خط کد تصویر داخل picturebox و shapeهای کشیده شده رو به فرمت TIFF ذخیره میکنم:
Dim bitmap = New Bitmap(PictureBox1.Width, PictureBox1.Height)
PictureBox1.DrawToBitmap(bitmap, PictureBox1.ClientRectangle)
Dim PATH = Application.StartupPath & "\TIFF\Final.TIFF"
bitmap.Save(PATH, System.Drawing.Imaging.ImageFormat.Tiff)
طبعا DPI ای مثل 96 که مناسب صفحه نمایشگر هست با DPI مناسب چاپ مثل 300 تناسبی نداره و برای چاپ به خروجی با ابعاد Bitmap بزرگتری نیاز دارید. اگر خطوطی که در PictureBox رسم می کنید ماندگار باشه، تصویر آماده اش قاعدتا در یک Bitmap آماده هست و نیازی نیست مجددا با کدی مثل
Dim bitmap = New Bitmap یک Bitmap جدید بسازید و DrawToBitmap کنید. برای افزایش کیفیت خروجی یا از ابتدا ابعاد تصویر رو چند برابر PictureBox1.ClientRectangle در نظر بگیرید (که DPI تصویر افزایش پیدا کنه) یا دو تا Bitmap مجزا (یکی با ابعاد نمایشی PictureBox و دیگری با ابعاد چند برابر) رو همزمان رسم کنید که دومی صرفا برای ذخیره خروجی و چاپ استفاده بشه.

نیاز به کمک در visual basic 2010
 

جدیدترین ارسال ها

بالا