문제

안녕하세요 저는 기본 이미지 편집기 프로그램에서 비트 맵 이미지를 저장하려고합니다.

코드는 다음과 같습니다.

         // then save it
        ImageBoxInApp.Image.Save(filename);

편집하다 그리고 나는 이것으로 이미지를 열고 있습니다

openFileDialog1.Title = "Select an Image";
        openFileDialog1.Filter = "All Files|*.*|Windows Bitmaps|*.bmp|JPEG Files|*.jpg";
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            filename = openFileDialog1.FileName;
            Image img = System.Drawing.Image.FromFile(filename);

그래서 내가 이것을 시도 할 때 나는 a를받습니다 Generic GDI+ error. 그래서 나는 a를 찾았다 해결책 이것에 다음과 같이 보입니다.

        // Delete existing file first
        System.IO.File.Delete(filename);
        // then save it
        ImageBoxInApp.Image.Save(filename);

그러나이 작업을 수행하려고 할 때 삭제중인 파일이 현재 열려 있다는 또 다른 오류가 발생합니다. 편집하려는 파일이기 때문입니다.

실제로 애플리케이션을 닫지 않고 파일을 "닫는"방법은 무엇입니까? 아니면 대체 솔루션이 있습니까?

감사!

도움이 되었습니까?

해결책

파일을로드하는 방법에 대한 컨텍스트를 보지 않고는 말하기는 어렵지만 몇 가지 제안이 있습니다.

  1. 저장하기 전에 기존 이미지를 새 이미지로 복사하고 원본을 닫고 삭제를 수행하고 사본을 저장하십시오.
  2. 파일을 임의의 파일 이름으로 저장하고 원본을 삭제하고 무작위로 명명 된 파일 이름을 원래 이름으로 바꿉니다.
  3. 파일을 메모리 스트림에로드하고 메모리 사본을 사용하여 이미지를 초기화합니다.

나는 대부분의 경우 옵션 #3과 함께 개인적으로 갈 것입니다. 사용을 완료했을 때 이미지를 폐기하십시오. 사용 () 블록으로 랩핑 할 수있는 경우 가장 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top