는 아마 내가 제대로 질문을 표현 오전 ImageMagick.net와 이미지를 여러 번 저장,하지만 난 ImageMagick.net 라이브러리 설명서를 따라하려고 내가 사용자 입력을 기반으로 텍스트를 생성하는 프로그램이 있습니다.예외 작성 및
이 처음으로 잘 작동하지만 프로그램은 여전히 실행되고있는 동안, 다음 번 충돌합니다.
내가 그만하고 차질없이이 이전 파일을 덮어 다시 시작합니다.
using (MagickImageCollection images = new MagickImageCollection())
{
MagickReadSettings readSettings = new MagickReadSettings()
{
BackgroundColor = MagickColors.None, // -background none
FillColor = MagickColors.Black, // -fill black
Font = "Helvetica-Condensed-Light", // -font Helvetica-Condensed-Light
FontPointsize = 26 // -pointsize 26
};
// this being declared a second time is probably why it crashes.
MagickImage image = new MagickImage("label:" + output, readSettings);
image.RemoveAttribute("label"); // +set label
images.Add(image);
MontageSettings montageSettings = new MontageSettings()
{
BackgroundColor = MagickColors.None, // -background none
Shadow = true, // -shadow
Geometry = new MagickGeometry(5, 5, 0, 0) // -geometry +5+5
};
using (MagickImage result = images.Montage(montageSettings))
{
result.Write("blarg.png");
}
}
두 번 누를 경우 위의 함수의 작용 따라서, 버튼 이벤트 핸들러에 상주하기 때문에
, 그것은 두 번째로 선언 될 것입니다,하지만 난 여전히 상대적으로뿐만 아니라 C# 새로운과의 확신입니다 방법은 내가 을 적절히으로 다시 쓰는 방법입니다.오류 :
Exception thrown: 'ImageMagick.MagickCoderErrorException' in Magick.NET-Q8-x64.dll
Exception type ImageMagick.MagickCoderErrorException
Exception message: WriteBlob Failed `blarg.png' @ error/png.c/MagickPNGErrorHandler/1650
Stack trace: at ImageMagick.MagickExceptionHelper.Check(IntPtr exception)
at ImageMagick.MagickImage.NativeMagickImage.WriteFile(MagickSettings settings)
at phVer.frmMain.btnGenerate_Click(Object sender, EventArgs e) in C:\Users\jweinraub\documents\visual studio 2015\Projects\phVer\phVer\Form1.cs:line 83
---BEGIN InnerException---
Exception type ImageMagick.MagickBlobErrorException
Exception message: unable to open image 'blarg.png': Permission denied @ error/blob.c/OpenBlob/2695
Stack trace:
---END Inner Exception
업데이트 : 실제 문제는 내가 저장됩니다 이미지의 배경 이미지를 포함하는 미리보기 창을 것 같다. 후속 실행이 충돌합니다. 미리보기 창을 제거하면 파일을 여러 번 쓸 수는 있지만 미리보기 창에 문제가있는 이유를 알 수 없습니다 (배경 이미지 제어가있는 패널 컨트롤). null/처분/& c를 사용하지 않으려 고 시도했습니다.
/* Preview.BackgroundImage = Image.FromFile("blarg.png"); */
if (Preview.BackgroundImage != null)
{
Preview.BackgroundImage.Dispose();
Preview.BackgroundImage = null;
Preview.Dispose();
}
var image2 = (Bitmap)Image.FromFile("blarg.png", true);
Preview.BackgroundImage = image2;
무슨 에러가 발생합니까? 당신이 (MagickImage 결과 = 새로운 MagickImage ("blarg.png")) 대신 몽타주를 사용하는 경우 호기심 – SLaks
, 여전히 충돌합니까? –
원래 질문에서 오류가 추가되었습니다. –