문제점이 정확히 무엇인지 알 수 없습니다. 작은 jpeg 파일을로드 할 수 있지만 tga 파일을로드하려고하면 예외가 발생합니다. 이미지의 크기를 조정하려고했지만 어느 쪽도 도움이되지 않았습니다.C에서 1MB의 tga 파일을로드 할 때 OutOfMemoryException이 발생합니다 #
public static System.Drawing.Image resizeImage(System.Drawing.Image imgToResize, Size size)
{
return (System.Drawing.Image)(new Bitmap(imgToResize, size));
}
private void imageToolStripMenuItem4_Click(object sender, EventArgs e)
{
if (tabControl1.TabCount == 0)
{
MessageBox.Show("Please add a form first");
return;
}
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "TGA (*.tga)|*.tga|JPEG (*.jpg)|*.jpg|BITMAP FILES (*.bmp)|*.bmp|PNG (*.png)|*.png";
openFileDialog1.FilterIndex = 1;
if (System.Windows.Forms.DialogResult.OK == openFileDialog1.ShowDialog())
{
BckImageRadioBtnGrp bimrbg=new BckImageRadioBtnGrp();
bimrbg.ShowDialog();
string result = bimrbg.getResult();
if (result != null)
{
switch (result)
{
case "Center" : (GetDesignSurface(tabControl1.SelectedTab) as System.Windows.Forms.UserControl).BackgroundImageLayout = ImageLayout.Center; break;
case "Zoom" : (GetDesignSurface(tabControl1.SelectedTab) as System.Windows.Forms.UserControl).BackgroundImageLayout = ImageLayout.Zoom; break;
case "Tile" : (GetDesignSurface(tabControl1.SelectedTab) as System.Windows.Forms.UserControl).BackgroundImageLayout = ImageLayout.Tile; break;
case "Stretch" : (GetDesignSurface(tabControl1.SelectedTab) as System.Windows.Forms.UserControl).BackgroundImageLayout = ImageLayout.Stretch; break;
case "None" : (GetDesignSurface(tabControl1.SelectedTab) as System.Windows.Forms.UserControl).BackgroundImageLayout = ImageLayout.None; break;
}
}
//getting exception here. I set a small resizing size just for testing if it works. it doesn't
System.Drawing.Image img = resizeImage(System.Drawing.Image.FromFile(openFileDialog1.FileName), new Size(100, 100));
(GetDesignSurface(tabControl1.SelectedTab) as System.Windows.Forms.UserControl).BackgroundImage = img;
}
}
}
}
그래서, 질문은, 어떻게 이미지를로드 할입니까?
['System.Drawing.Image.FromFile'] (http://msdn.microsoft.com/en-us/library/stf701f5.aspx)의 문서에서 : 파일에 a가 없으면 OutOfMemoryException이 발생합니다. 유효한 이미지 형식. -or- GDI +는 파일의 픽셀 형식을 지원하지 않습니다. –
체크 가치 : [메모리 부족 Image.FromFile] (http://stackoverflow.com/a/8285521/352101) – Bolu
@Tim - 맞춤 제작 라이브러리 사용과 별도로 TGA 파일을로드 할 수 있습니까? – Paul