2010-03-16 4 views
2

Amazon S3에 이미지를 업로드하는 iPhone 카메라 앱을 개발 중이며 해당 이미지가 웹 사이트에 표시됩니다. iPhone이 사진을 찍을 때 사진을 올바르게 볼 때 사용한 방향이 이미지의 EXIF ​​데이터에 저장되는 동안 사진은 항상 세로 방향으로 저장됩니다. 따라서 iPhone으로 사진을 찍어 EXIF ​​데이터를 처리하지 않고 FireFox에서 열면 이미지가 옆으로 또는 뒤집어 질 수 있습니다.웹에 iPhone 사진을 표시 할 때 EXIF ​​방향 고려

제 문제는 웹 사이트에서 올바른 방향으로 사진을 표시하는 방법을 모르겠다는 것입니다. 나의 현재의 해결책은 아이폰 앱에서 사진을 회전시키는 것이지만, 나는 그렇게하지 않을 것이다. 이미지를 사전 처리하지 않고 웹에 표시 할 때 EXIF ​​데이터를 존중해야합니까?

답변

2

내 순서대로 나열된 몇 가지 옵션이 있습니다.

  1. 카메라에서 이미지를 회전하십시오.
  2. Amazon EC2를 통해 데이터를 업로드하고 프로그램을 사용하여 exif를 읽고 회전을 수행하십시오.
  3. s3을 프록시 처리하고 회전을 수행하는 프로그램을 웹 서버에서 실행하십시오.
  4. Javascript과 DHTML을 사용하십시오.

옵션 3은 여러 브라우저에서 작동하지 않을 수 있으며 성능에 대해 확신하지 못할 수 있습니다. 옵션 2는 불필요한 복잡성을 추가합니다. 당신은 그것을하고 싶지는 않을 수도 있지만, 스토리지 이외에는 아무것도 사용하지 않을 계획이라면, 옵션 1이 가장 좋습니다.

1

카메라에서 회전하는 것이 가장 좋은 방법 일 수 있지만 저장 전에 회전하고 이미지가 JPEG 인 경우 회전이 손실됩니다. 따라서 저장 한 이미지의 품질이 즉시 저하됩니다.

다행히도 JPEG로 읽는 대신 이미지를 회전시킨 다음 JPEG로 다시 인코딩하는 대신 파일에 직접 회전을 적용하는 방법이 있습니다.

JPEG는 일련의 8x8 셀로 저장됩니다. JPEG은 품질을 잃지 않고 개별적으로 회전하고 재 배열 할 수 있습니다 (90도 증분). 그러면 크기 정보가있는 메타 데이터를 업데이트해야합니다.

여기 내 회사 (Atalasoft)는이 작업을 수행 할 수있는 SDK를 제공합니다, 당신은 포트

.NET에 대한

http://eng.neologica.it/download/downloadIJGWin32.html

하려고 수있는 몇 가지 C++ 코드입니다.

또 다른 옵션은 JPEG를 읽은 다음 회전하여 PNG로 저장하는 것이지만 파일 크기는 훨씬 커집니다.

+0

높은 압축 비율에서 사용자는 1 회 손실 후 차이를 알 수 없습니다. 분명한 압축 인공물이있는 품질 수준, 교육받지 않은 눈에는 문제가 될 수 있습니다. – mikerobi

+0

@mikerobi 사실 일 수 있지만 누가 데이터를 잃어버린 것을 좋아합니까? 나 ... 아니. –

+0

@William Denniss, 진지한 사진 작가로서 나는 어디에서 왔는지 알지만, 웹 개발자로서 나는 "디지털 무손실"보다 "시각적으로 무손실"에 더 관심이있다. 높은 압축 비율에서는 이미지가 다시 압축되었는지 감지하는 것이 거의 불가능합니다. 지나치게 압축하거나 반복해서 압축하면 문제가 발생합니다. – mikerobi