PDA

View Full Version : کمک از اساتید وی بی.نت



Fagat_tanhaie
یک شنبه 08 آبان 1384, 12:59 عصر
سلام

برنامه ای که نوشتم دو تا picturebox داره که تو یکی چند تا خط رسم کردم و میخوام کپی کنم تو
picturebox دومی . ولی خطا میده . اینم کد :

رسم خط :
Dim g As Graphics = Pic1.CreateGraphics
Dim myPen As System.Drawing.Pen
myPen = New System.Drawing.Pen(System.Drawing.Color.Tomato)
Dim c As Color
myPen.Color = c.FromArgb(100, 100, 100)
g.DrawLine(myPen, 1, 1, 160, 120)
کپی :
Dim bmp As New Bitmap(Pic1.Image) برای این خط خطای null refrence ldni
Pic2.Image = bmp
برای رفع این مشکل چیکار کنم ؟

مطهر
یک شنبه 08 آبان 1384, 21:49 عصر
عنوان تاپیکت نامربوطه احتمالش هست که تاپیک ناپدید بشه
شکل را در یک Bimap رسم کن
این کد را جایگزین دستور رسم کن

Dim bm As New Bitmap(Pic1.Width, Pic1.Height)
Dim g As Graphics
g = Graphics.FromImage(bm)
Dim myPen As System.Drawing.Pen
myPen = New System.Drawing.Pen(System.Drawing.Color.Tomato)
Dim c As Color
myPen.Color = c.FromArgb(100, 100, 100)
g.DrawLine(myPen, 1, 1, 160, 120)
Pic1.Image = bm
این پروپرتی Image در PictureBox نشان از آن عکسی است که موقوع Design یا RunTime پیکچرباکس باید نشون بده

Fagat_tanhaie
سه شنبه 10 آبان 1384, 12:48 عصر
با تشکر از دوست عزیز

ولی مشکل من رسم خط نیست . میخوام خطی که داخل picture box رسم کردم رو کپی کنم .
در واقع مشکل یه چیز دیگه هست. تصویر دریافتی از webcam رو توسط media encoder 9 داخل یه picturebox
پخش میکنم و حالا میخام از تویر در حال پخش عکس بگیرم و لی پیغام null refrence میده یعنی همون پیغامی که
در کپی کردن عکس در مثالی که گذاشتم میده رو میده. حالا اگه بدونیم این خط کجای picturebox قرار گرفته
میتونیم تصویر در حال پخش رو هم کپی کنیم .
اگه خواستین بگین یه نمونه از پخش تصویر توسط media encoder 9 رو براتون بذارم .
منتظر نظرات دوستان هستم.

Behrouz_Rad
سه شنبه 10 آبان 1384, 14:52 عصر
شما کاربر خوب و با انضباتی هستید.
من بعد در انتخاب عنوان تاپیک دقت بفرمایید.
با تشکر.

مطهر
چهارشنبه 11 آبان 1384, 14:24 عصر
ولی مشکل من رسم خط نیست . میخوام خطی که داخل picture box رسم کردم رو کپی کنم
چرا! هست

حالا میخام از تویر در حال پخش عکس بگیرم و لی پیغام null refrence میده
لطفاً توضیح بدید چه جوری ؟

حامد مصافی
پنج شنبه 12 آبان 1384, 11:20 صبح
سلام
ظاهراً سوالات شما درباره GDI+ تموم شدنی نیست!!
در مورد خطای مذکور باید بگم که چون خصوصیت Image کنترل مورد نظر هرگز مقدار دهی نشده شما نمی تونید ازش برای اعمال دیگه استفاده کنید!!
من یک مثال براتون نوشتم و امیدوارم کارتونو راه بندازه

Fagat_tanhaie
پنج شنبه 12 آبان 1384, 16:56 عصر
با تشکر از دوستانی که وقت گذاشتند و لی آقای BlackDal من قبلا از روشی که شما ارائه کرده اید استفاده کرده
بودم ولی اگر دقت کنید اگر کنترلی دیگر و یا فرمی دیگر روی قسمتی از Picturebox مبدا باشد بعد از کپی عکس
آن کنترل هم در تصویر مقصد می افتد .

آیا راه حلی هست که فقط عکس توی picturebox کپی شود ؟
با تشکر

حامد مصافی
جمعه 13 آبان 1384, 09:09 صبح
سلام
عبارت عکس توی Picturebox کپی شود اشتباه است چون همانطور که قبلاً گفتم پروپرتی Image کنترل هرگز مقدار دهی نشده است به این معنی که صویری که شما می بینید مربوط به تصویر کنترل نیست بلکه مربوط به ظاهر کنترل است و کنترل های دیگر هم جزء ظاهر Picturebox هستند.
و اگه شما توجه کنید اگر کنترل یا فرم دیگه ای روی Picturebox رو بپوشونه تصویر زیر اون ناپدید میشه!!!
در ضمن دفعات مشاهده ضمیمه من هنوز صفره شما از کجا فهمیدید که من چه روشی ارائه کردم؟