그래서 현재 작업/매우 잘 작동하지만 내가 너무 많은 이미지를 한 번에 프로그램을 처리하는 동안 OutOfMemoryException 준 예외로 이미지 resizer 노력하고 있습니다.문을 사용하여 반환 후 비트 맵 ArgumentException
그래서 나는 비트 맵을 올바르게 처리 할 수 있도록 using 문 안에 메서드를 래핑했습니다.
public Bitmap ResizeImage(MemoryStream ms, Size size)
{
if (comboBox2.Text == "Pixel")
{
using (Bitmap img = new Bitmap(new Bitmap(ms, true), size.Width, size.Height))
{
var original = new Bitmap(ms, true);
Graphics graphic = Graphics.FromImage(img);
//IRRELEVANT CODE.....
return img;
}
}
else
{
return null;
}
그리고 여기에 내가 저장하려고하면
그러나 나는 using 문 안에 내 비트 맵을 반환하고 있다면이 여기에 메시지
내 ImageResize 방법 "경우 ArgumentException이 처리되지 않은했다"얻을 것으로 나타났습니다 ImageResize 메서드 외부 이미지 :
private void button1_Click(object sender, EventArgs e)
{
//IRRELEVANT CODE ...
img = ResizeImage(memory, new Size(getX(), getY()));
//IRRELEVANT CODE ...
img.Save(outputFileName, codec, encoderParams); //<-Exception occurs here
}
사용 문을 제거하면 모든 것이 완벽하게 정상적으로 작동하지만 다시 사용해야합니다. 비트 맵을 처리하기 위해 블록을 사용하여 메모리 누수를 방지합니다. 또한 using 문 내부에 이미지를 저장할 때 문제가 없지만 해결책은 아닙니다.
내가 뭘 잘못하고 있니? 나에게 그것은 비트 맵이 올바르게 리턴되지 않는 것처럼 보인다.
나는 당신은 당신이 잘못된 위치에 사용 넣어 미리 Ravand
나는'// IRRELEVANT CODE ... '주석을 좋아합니다. 그것은 [이 스레드에 속한다] (http://stackoverflow.com/q/184618/2596334). –
하하하 (Hahaha)가 원하는 경우 게시하십시오. D하지만 솔직히이 경우에는 관련이 없습니다. – Ravand