PDA

View Full Version : سوال: چرخاندن ‏PictureBox



masoud_sm2
دوشنبه 13 آذر 1391, 20:21 عصر
با سلام خدمت دوستان
من می خوام یه PictureBox با زاویه مورد نظرم به چرخونم.
اصلا تو C# امکان یه همچین کاری هست؟

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

مهرداد صفا
دوشنبه 13 آذر 1391, 20:31 عصر
سلام

PictureBox1.CreateGraphics().RotateTransform((floa t)90);


شاه وفا ابالفضل

masoud_sm2
دوشنبه 13 آذر 1391, 23:44 عصر
مرسی از جوابتون برای سوال دوم چی راهی وجود داره؟

SHD.NET
سه شنبه 14 آذر 1391, 00:26 صبح
به این تاپیک ها مراجعه شود :

تاپیک 1:

http://stackoverflow.com/questions/6243535/drawing-lines-in-a-picturebox
تاپیک 2:

http://stackoverflow.com/questions/2729751/how-do-i-draw-a-circle-and-line-in-the-picturebox
تاپیک 3:

http://stackoverflow.com/questions/4187524/draw-lines-on-a-picturebox-in-c-sharp

:چشمک:\\\موفق باشید///:چشمک:

masoud_sm2
سه شنبه 14 آذر 1391, 20:04 عصر
سلام

PictureBox1.CreateGraphics().RotateTransform((floa t)90);


شاه وفا ابالفضل

سلام, من امروز فرست کردم از این کد استفاده کنم ولی متاسفانه نتونستم نتیجه ایی بگیرم. یعنی ‏picturebox‏ هیچ حرکتی نکرد. اگه امکان داره یک نمونه برنامه یا یک قطعه کد کامل تر قرار بدین ممنون میشم. با تشکر.

مهرداد صفا
سه شنبه 14 آذر 1391, 21:35 عصر
سلام, من امروز فرست کردم از این کد استفاده کنم ولی متاسفانه نتونستم نتیجه ایی بگیرم. یعنی ‏picturebox‏ هیچ حرکتی نکرد. اگه امکان داره یک نمونه برنامه یا یک قطعه کد کامل تر قرار بدین ممنون میشم. با تشکر.


سلام

//in the name of god
//اللهم صل علی محمد و آل محمد
private


void pictureBox1_Paint(object sender, PaintEventArgs e)

{

pictureBox1.Image =

null;

e.Graphics.TranslateTransform(pictureBox1.Width / 2, pictureBox1.Height / 2);

e.Graphics.RotateTransform(90);

e.Graphics.DrawImage(

Image.FromFile(@"e:\temp\temp.jpg"), 0, 0,pictureBox1.Width,pictureBox1.Height);

}


شاه وفا ابالفضل

kiarash abdani
سه شنبه 21 آذر 1391, 23:25 عصر
چرخاندن به راست

private void btn_right_Click(object sender, EventArgs e)
{
Image img = pictureBox1.Image;
img.RotateFlip(RotateFlipType.Rotate90FlipNone);
pictureBox1.Image = img;
}

چرخاندن به چپ

private void btn_left_Click(object sender, EventArgs e)
{
Image img = pictureBox1.Image;
img.RotateFlip(RotateFlipType.Rotate270FlipNone);
pictureBox1.Image = img;
}

masoud_z_65
چهارشنبه 22 آذر 1391, 08:41 صبح
دوست عزیز دستور رفرش رو فراموش نکن



pictureBox1.Refresh();

masoud_z_65
چهارشنبه 22 آذر 1391, 08:42 صبح
اینم برای چرخش با هر زاویه که میخوای:



public Image RotateImage(Image img, float rotationAngle)
{
try
{
Bitmap bmp;
//create an empty Bitmap image
bmp = new Bitmap(original.Width, original.Height);

//turn the Bitmap into a Graphics object
Graphics gfx = Graphics.FromImage(bmp);

//now we set the rotation point to the center of our image
gfx.TranslateTransform((float)bmp.Width / 2, (float)bmp.Height / 2);

//now rotate the image
gfx.RotateTransform(rotationAngle);
gfx.TranslateTransform(-(float)bmp.Width / 2, -(float)bmp.Height / 2);

//set the InterpolationMode to HighQualityBicubic so to ensure a high
//quality image once it is transformed to the specified size
gfx.InterpolationMode = InterpolationMode.HighQualityBicubic;

//now draw our new image onto the graphics object
//gfx.DrawImage(img, new PointF(200, 200));
gfx.DrawImage(img, 0 ,0, img.Width, img.Height);

//dispose of our Graphics object
gfx.Dispose();

//return the image
return bmp;
}
catch (Exception)
{

throw;
}
}

kiarash abdani
چهارشنبه 22 آذر 1391, 15:52 عصر
دوست عزیز دستور رفرش رو فراموش نکن

مسعود جان کد رو تست کردم احتیاجی به refresh نداره، حتما جواب میده.