ورود

View Full Version : سوال: چاپ ترسمیات پیکچر باکس



فاطمه وطن دوست
شنبه 26 مرداد 1387, 16:16 عصر
سلام

برای چاپ ترسمیات پیکچر باکس از چه روشی باید استفاده کرد ؟( با کیفیت مطلوب )


توضیحات :


روش 1
اگر بخوام اول محتویات پیکچر باکس رو ذخیره کنم تو هارد و بعدش با کمک یه ادیتور ازش چاپ بگیرم چی کار باید انجام بدم ؟

روش 2
اگر بخوام مثل دکمه پرینت اسکرین از صفحه – پنجره ی جاری نه همش بلکه فقط پیکچر باکسش عکس بگیرم از چه کدی باید استفاده کنم ؟( مثلا api ) کدامش ؟

ASKaffash
شنبه 26 مرداد 1387, 16:21 عصر
سلام
بهترین کار برای اینکه شما محتوای یک PictureBox را به چاچگر بفرستید عکس گرفتن از آن نیست بلکه شما برای ترسیمات گرافیکی همانگونه که در سطح PB این کار را انجام میدهید باید روی شی Printer نیز این کار را انجام دهید در این حالت کیفیت عملیات گرافیکی شما روی پرینتر کاهش نخواهد یافت در صورتیکه از آن یک فایل تصویر ایجاد کنید و بعد آن فایل راچاپ کنید کیفیت متناسب با کیفیت مانیتور شما خواهد بود

فاطمه وطن دوست
یک شنبه 27 مرداد 1387, 08:30 صبح
سلام

دلیل اینکه وقتی از پیکچر باکس پرینت میگیریم فقط خط ترسیم شده ی در پیکچر باکس تو پرینت می افته ولی یوزرکنترل خط که تو پیکچر باکس قرار داره تو چاپ نمیافته چیه ؟

اسکیل همه چیز یکی هست !

این نمونه رو ببینید.

sohrab o
یک شنبه 27 مرداد 1387, 10:44 صبح
SavePicture Picture1.Picture, "C:\1.bmp"

فاطمه وطن دوست
یک شنبه 27 مرداد 1387, 14:10 عصر
SavePicture Picture1.Picture, "C:\1.bmp"


سلام

این کدو دانلود کنید .
گفتم دقیقا چی میخوام .( چی واسه چاپ باید فرستاده بشه و در نتیجه به صورت فایل ذخیره بشه . )

اوبالیت به بو
یک شنبه 27 مرداد 1387, 14:40 عصر
لطفاً پستهاي بيهوده پاك بشن.
به اين پست مراجعه كنيد. فكر كنم حل بشه.

http://barnamenevis.org/forum/showpost.php?p=573588&postcount=8

sohrab o
یک شنبه 27 مرداد 1387, 14:40 عصر
اگه بخوای که دکمه هم تو عکست باشه یه راهش اینه که از فرمت با توجه به مختصات پیکچرت عکس بگیری که توی همون مختصات کلیدت هم هست.

Mbt925
یک شنبه 27 مرداد 1387, 16:48 عصر
اگه قرار باشه فقط ترسیمات روی کنترل چاپ بشن، میشه با ترسیم مستقیمشون روی شیء پرینتر کیفیت ترسیمات رو افزایش داد.

مثال شما اشتباست چون چاپ UserControl شما با چاپ کنترل دکمه متفاوته.
UserControl شما دارای یه خط هست و مختصات هم داره، بنابراین می تونید مستقیما با دستورات گرافیکی برروی شیء پرینتر رسمش کنید.

بهترین روش برای برنامه ی شما ترسیم مستقیم هست و
راهترین روش چاپ کنترل تصویره که البته ناقصه.

فاطمه وطن دوست
یک شنبه 27 مرداد 1387, 19:56 عصر
سلام

این نمونه رو تست کنید.
مشکل داره ، اصلا ترسیمات درست در نمیاد ! چرا ؟

http://www.uplod.ir/download.php?file=102967

فاطمه وطن دوست
یک شنبه 27 مرداد 1387, 22:48 عصر
سلام

یه سوال دیگه !

میتونم با تابع GetWindowRect

اين تابع هندل يک پنجره را مي گيرد و مختصات چهارچوب آن نسبت به دسکتاپ را بر مي گرداند
گر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود
hwnd : هندل پنجره مورد نظر
lpRect : اين بافر توسط تابع مقدار دهي مي شود و حاوي چهار چوب پنجره مورد نظر از نوع RECT خواهد بود

-------------------------------------------------------------------------------------------------
و تایع PaintDesktop

اين تابع از پس زمينه ويندوز يک کپي تهيه مي کند و آن رادر يک کنترل گرافيکي قرار مي دهد.
اگر تابع مقدار صفر را بر گرداند به منزلهء عدم موفقيت آن است و مقدار غير صفر نشانگر موفقيت تابع است.
hdc : اين متغير هندل کنترلي است که تصوير بايد در آن قرار بگيرد

-------------------------------------------------------------------------------------------------
از پیکچر باکس عکس بگیرم ؟
نظرتون چیه ؟

آیا کیفیت عکس حاصل از این روش خوب میشه ؟
اصلا این روش درسته ؟

Mbt925
دوشنبه 28 مرداد 1387, 11:25 صبح
عکس گرفتن هم می تونه یه روش باشه.

فاطمه وطن دوست
دوشنبه 28 مرداد 1387, 11:42 صبح
سلام

یه سول در مورد بالا بردن کیفیت چاپ.

من با چاپگر مجازی Microsoft Office Document Image Writer از Printer.PaintPicture استفاده کردم دیدم کیفیتش خیلی پایینه و تصویر رو مثل عکس های Jpeg فشرده می کنه.
برای اینکه عکس رو فشرده نکنه باید از طریق زیر عمل کنیم :


"Control Panel"
"Printers and Faxes"


چاپگر مورد نظرمون رو باز میکنیم و توی پنجره باز شده مراحل زیر رو انجام میدیم:




"Printer" Menu
"Properties" Item
"Advanced" Tab
"Printing Defaults..." Button
"Advanced" Tab
Remove "Compress images in the document" Check

نمی دونم چاپگرها این تنظیمات رو دارند یا نه. چیزی که گفتم در مورد چاپگر مجازی مایکروسافت آفیس بود .

دوستان دیگه نظری ندارن ؟

این لینک هم واسه عکس گرفتن خوب بود. http://barnamenevis.org/forum/images/buttons/post_thanks.gif (http://barnamenevis.org/forum/post_thanks.php?do=post_thanks_add&p=575921) از فرستندش :تشویق:

http://barnamenevis.org/forum/showpost.php?p=575917&postcount=273

xxxxx_xxxxx
دوشنبه 28 مرداد 1387, 12:03 عصر
سلام اين لينك ميتونه تو موارد ديگه اي كمكتون كنه ولي براي عكس گرفتن چه از مانيتور چه از picturebox توابع API بهتري هست.

من يك برنامه براي عكس گرفتن مخفي به صورت پياپي نوشتم و خيلي وسيع و گسترده و امكانات زيادي داره.
الان كه همرام نيست ولي دفعه بعد كه امدم اون قسمتش كه از مانيتور و يا حتي از picture box عكي ميگيره رو ميزارم تو همين تاپيك.

موفق باشيد/.

ASKaffash
دوشنبه 28 مرداد 1387, 12:13 عصر
سلام
این کد به شما نشان میدهد که چگونه یک منطق گرافیکی را هم روی Form و PictureBox و Printer و UserControl میتوان چاپ کرد .


Private Sub Command1_Click()
'On Printer
Call Draw(Printer)
Printer.NewPage
Printer.EndDoc
End Sub
''''''''''''''''''''''''''''''''''''''''
Private Sub Command2_Click()
'On PictureBox
Me.Picture1.AutoRedraw = True
Me.Picture1.Cls
Call Draw(Me.Picture1)
End Sub
''''''''''''''''''''''''''''''''''''''''
Private Sub Command3_Click()
'On Form
Me.AutoRedraw = True
Me.Cls
Call Draw(Me)
End Sub
''''''''''''''''''''''''''''''''''''''''
Private Sub Draw(PrintOut As Object)
With PrintOut
'Line
.DrawWidth = 2
.DrawStyle = 0
PrintOut.Line (100, 100)-(1000, 1000), RGB(200, 0, 0)
'Text
.FontTransparent = True
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.ForeColor = RGB(0, 200, 0)
.CurrentX = 500
.CurrentY = 500
End With
PrintOut.Print "Hello"
End Sub

xxxxx_xxxxx
پنج شنبه 31 مرداد 1387, 10:44 صبح
سلام.
از عكس معلومه كه برنامه كارش چيه.
اما من نفهميدم چرا بايد از picture يا image عكس بگيريم. دليلي نداره. ما كه مي تونيم با SavePicture هم عكس داخل Image هم عكس داخل Picture رو ذخيره كنيم.!!

شايد هم من اشتباه مي كنم شما اصلا همچين چيزي نخواسته بوديد.
چون من نمي تونم به صفحه اول برم ببينم موضوع چيه.

http://i35.tinypic.com/156wnf9.jpg