لام من روی یک picturebox یک لوزی با حرکت موس رسم میکنم ولی نمی دونم چطور اون را save کنم با پسوند bmp یا gif
Printable View
لام من روی یک picturebox یک لوزی با حرکت موس رسم میکنم ولی نمی دونم چطور اون را save کنم با پسوند bmp یا gif
میتونین از کلاس Bitmap برای این کار استفاده کنین.
تصویر مورد نظرتون رو در یک Bitmap قرار بدین و با استفاده از متود Save اون رو به صورت Bmp ذخیره کنین.
مثلا به شکل زیر :
کد:Bitmap bmp = new Bitmap(pictureBox1.Image);
bmp.Save("C:\\text.bmp");
ببخشید من تازه کار هستم اگر می شود کد کامل را بدهید این کد رسم چند ضلعی در vb.net لطفا کد با vb.net باشد
کد:PublicSub DrawPolygonPoint(ByVal e As PaintEventArgs)
' Create pen.
Dim blackPen AsNew Pen(Color.Black, 3)
' Create points that define polygon.
Dim point1 AsNew Point(50, 50)
Dim point2 AsNew Point(100, 25)
Dim point3 AsNew Point(200, 5)
Dim point4 AsNew Point(250, 50)
Dim point5 AsNew Point(300, 100)
Dim point6 AsNew Point(350, 200)
Dim point7 AsNew Point(250, 250)
Dim curvePoints As Point() = {point1, point2, point3, point4, _
point5, point6, point7}
' Draw polygon to screen.
e.Graphics.DrawPolygon(blackPen, curvePoints)
EndSub
PrivateSub PictureBox1_Paint(ByVal sender AsObject, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
DrawPolygonPoint(e)
EndSub
سلام
با اجازه کاربر someone ...
دستور اصلی همان است که جناب someone گفتند.
ولی مشکل شما این است که مستقیم ترسیم میکنید،
اگر اول روی یک عکی ترسیم کنید، میتوانید این عکس را به Me.PictureBox1.Image هم بخورانید و هم ذخیره کنید.
البته اگر ترسیماتتان به صورت runtime و با مثلاً Mouse باید تغییر کنند، پیشنهاد میکنم، شی bmp فقط را یکبار ساخته و در متغییری در سطح ماژول نگه داری کنید و در هر ترسیم فقط Clear کنید.کد:Dim bmp As New System.Drawing.Bitmap(350, 250) ' Or Me.PictureBox1.Width, Me.PictureBox1.Height
Using _
graph As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bmp), _
pen As New System.Drawing.Pen(System.Drawing.Color.Black, 3)
graph.DrawPolygon(pen, _
New System.Drawing.Point() { _
New System.Drawing.Point(), _
New System.Drawing.Point(100, 25), _
New System.Drawing.Point(200, 5), _
New System.Drawing.Point(250, 50), _
New System.Drawing.Point(300, 100), _
New System.Drawing.Point(350, 200), _
New System.Drawing.Point(250, 250)})
End Using
bmp.Save("C:\file.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
خیلی ممنون فقط اگر زحمتی نیست چطور روی یک عکس نقاشی کنیم و سیوش کنیم
سلام
فرق زیادی ندارد، مثلاً در همین دستور ترسیم، پست 4، اگر بخواهید بجای فایل سفید روی یک تصویر مشخص ترسیم کنید، فقط باید خط اول را چنین تغییر دهید
کد:Dim bmp As System.Drawing.Image = System.Drawing.Image.FromFile("C:\source.jpg")
خیلی ممنون
سلام
کسی از دوستان می تونه کد رسم چند ضلعی در c# رو برام بزاره؟ می خوام توی یک panel با استفاده از موس یک چند ضلعی رسم کنم. اگر کد نشد یک راهنمایی در مورد این مورد بهم بکنید...
باتشکر :11:
سلام
نمیدانم چگونه میخواهید با ماوس، چند ضلعی رسم کنید و کجایش مربوط به ماوس است، ابعادش؟
ولی میتوانم کد پست 4 را به زبان #C هم قرار بدهم.
کد:System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(350, 250); //Or this.PictureBox1.Width, this.PictureBox1.Height
using (System.Drawing.Graphics graph = System.Drawing.Graphics.FromImage(bmp)){
using(System.Drawing.Pen pen = new System.Drawing.Pen(System.Drawing.Color.Black, 3)){
graph.DrawPolygon(pen,
new System.Drawing.Point[] {
new System.Drawing.Point(),
new System.Drawing.Point(100, 25),
new System.Drawing.Point(200, 5),
new System.Drawing.Point(250, 50),
new System.Drawing.Point(300, 100),
new System.Drawing.Point(350, 200),
new System.Drawing.Point(250, 250)});
}}
bmp.Save("C:\\file.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
ممنونم به خاطر کد :11:
برای رسم ضلعی مشکلی ندارم! منظورم اینه که مثل برنامه paint بشه یک چند ضلعی رسم کرد! بدون دادن مقدار ثابت توی سورس کد.