문제

할 수 있는 방법을 제거하는 모든 EXIF 에서 데이터 이미지 JPEG?

나는 많이 발견의 예에는 방법을 읽고 편집 EXIF 데이터와 함께 다양한 라이브러리,하지만 모두 필요가 있는 간단한 예제에서는 방법을 제거합니다.

그것은 테스트를 위해 제안,너무도 못생긴 그 hackished 방법이 도움이 될 것이라고:)

이용에 불편을 드려 정말 죄송 검색에 대한 EXIF 시작/종료 마커 0xFFE1&0xFFE2.마지막 중 하나는 존재하지 않을 수도 있습니다.

도움이 되었습니까?

해결책

나는 생각을 읽는 파일에 있는 비트맵으로 객체를 작성하여 파일을 다시해야 합니다.

나는 느낌을 기억하고 좌절하는 동안"내 이미지 회전"프로그램을 제거 EXIF 데이터입니다.그러나 이 경우에는,그것의 당신이 원하는 정확하게!

다른 팁

내가 처음에 대해 썼다는 이를 사용하여 WPF 라이브러리에서 나 블로그,하지만 이런 종류의 실패한 이후 윈도우드 백엔드 호출은 조금 엉망입니다.

최종 솔루션 또한 훨씬 빨리는 기본적으로 바이트 패치 jpeg 을 제거하기 위해 exif.빠르고 간단하다:)

[편집:블로그 포스팅에는 더 업데이트 코드]

namespace ExifRemover
{
  public class JpegPatcher
  {
    public Stream PatchAwayExif(Stream inStream, Stream outStream)
    {
      byte[] jpegHeader = new byte[2];
      jpegHeader[0] = (byte) inStream.ReadByte();
      jpegHeader[1] = (byte) inStream.ReadByte();
      if (jpegHeader[0] == 0xff && jpegHeader[1] == 0xd8)
      {
        SkipExifSection(inStream);
      }

      outStream.Write(jpegHeader,0,2);

      int readCount;
      byte[] readBuffer = new byte[4096];
      while ((readCount = inStream.Read(readBuffer, 0, readBuffer.Length)) > 0)
        outStream.Write(readBuffer, 0, readCount);

      return outStream;
    }

    private void SkipExifSection(Stream inStream)
    {
      byte[] header = new byte[2];
      header[0] = (byte) inStream.ReadByte();
      header[1] = (byte) inStream.ReadByte();
      if (header[0] == 0xff && header[1] == 0xe1)
      {
        int exifLength = inStream.ReadByte();
        exifLength = exifLength << 8;
        exifLength |= inStream.ReadByte();

        for (int i = 0; i < exifLength - 2; i++)
        {
          inStream.ReadByte();
        }
      }
    }
  }
}

그것은 너무 쉽고,사용 jhead.exe 여기에서: http://www.sentex.net/~mwandel/jhead/

들에게 조금 배치 파일을 원하는 경우 예를 들어:jhead.exe -purejpg *.jpg

그것은 지구에서 모든 메타데이터 모든 jpeg 파일에서 동일한 폴더에 있습니다.

무엇을 피해야한다는 디코딩하고 다시 인코딩하는 이미지 때문에 이를 다치게 품질입니다.대신해야 합는 방법을 찾을 수정합니다.나는 그것을 시도하지 않았지만 나고 생각 InPlaceBitmapMetadataWriter 할 것이다.

는 경우에 그것은 단지 하나의 파일을 읽는 시도로 페인트 패키지와 같은 Paint.NET 또는 페인트 숍 프로와 다시 저장으로 새로운 파일입니까?

해야 할 수 있습니 복사본 이미지를 새로운 파일을 처음이다.

물론 많은 경우 파일이 가장 좋은 방법이 될;).하지만 그런 말로 페인트 숍 프로 일괄 변환 옵션이 될 수있는 가치를 조사하고 있습니다.

편집:그것은 여전히 가치가있을 수도 있습을 조사하는 배치에서 작업을 페인트 패키지(보다는 오히려진 사진 조작 패키지로 이들은 더 많은 가능성이 보존 EXIF 데이터)및 보면 그들을 자동화할 수 있습니다.할 수 있는 스크립트를 작성/배치 파일을 프로 귀하의 이미지입니다.

iik 의 코멘트에 대해 읽기와 쓰기의 파일을 저하시켜 이미지 적용됩니다 이 경우에는,그러나 최소화할 수 있습니다 작성하여 최소한의 압축합니다.

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