PDA

View Full Version : مشکل با ترسیم مستطیل بر روی عکس



sg.programmer
شنبه 11 فروردین 1397, 11:19 صبح
سلام من با دستور زیر میخوام یک شیپی مثلا مستطیل روی عکس بکشم
با عکس های معمولی و عکس های که از طریق Paint کشیده میشه مشکلی نیست و ترسیم میشه
ولی یک برنامه دارم که عکس میده بیرون و فرمتش هم jpg هست هیچ تفاوتی با عکس های معمولی نداره ولی وقتی روی اونا میخوام ترسیم کنم خطای زیر صادر میشه. آیا کسیتا به حال با این مشکل روبرو بوده؟

متن خطا
An unhandled exception of type 'System.Exception' occurred in System.Drawing.dll

Additional information: A Graphics object cannot be created from an image that has an indexed pixel format.


دستورات
private void button5_Click(object sender, EventArgs e)
{
openFileDialog1.Title = "Open Image";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
Bitmap newImage3 = (Bitmap)(Image.FromFile(openFileDialog1.FileName)) ;

Pen pen = new Pen(Color.Red, 5);

Graphics g = Graphics.FromImage(newImage3);
g.DrawRectangle(pen, 10, 10, 30, 30);
pictureBox1.Image = newImage3;
}
}

خطا هم بر روی سطر زیر هست
Graphics g = Graphics.FromImage(newImage3);

ژیار رحیمی
شنبه 11 فروردین 1397, 12:28 عصر
سلام خطای فرمت عکس هست


/*
* خطا مربوط به فرمت عکس ها ست با فرمت های زیر با این خطا مواجه میشود
*
PixelFormatUndefined
PixelFormatDontCare
PixelFormat1bppIndexed
PixelFormat4bppIndexed
PixelFormat8bppIndexed
PixelFormat16bppGrayScale
PixelFormat16bppARGB1555
*
*/




openFileDialog1.Title = "Open Image";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
Bitmap newImage3 = (Bitmap)(Image.FromFile(openFileDialog1.FileName)) ;
Bitmap tempBitmap = new Bitmap(newImage3.Width, newImage3.Height);


using (Graphics g = Graphics.FromImage(tempBitmap))
{
g.DrawImage(newImage3, 0, 0);
Pen pen = new Pen(Color.Red, 5);
g.DrawRectangle(pen, 10, 10, 30, 30);
pictureBox1.Image = tempBitmap;
}


}