이미지 갤러리에서 액세스 한 이미지가 있습니다. 이 이미지를 데이터베이스에 저장하고 나중에 크기를 다시 지정하고 서버에 POST하려고합니다. 어떤 것이 이미지가 압축 된 경우 EXIF 데이터를 잃어 버릴 지 말해 줄 수 있습니까? 원본 이미지에 EXIF 데이터가 있습니다. 데이터가 손실되지 않은 경우. 나는 압축 및 크기 조정 이미지를 다시 할 수있는 방법에 관한 안내하시기 바랍니다iphone exif 데이터가 포함 된 이미지의 크기 (바이트)를 줄입니다
0
A
답변
4
- 이미지 예를 들어,이 지역에 답변
부지 크기 조정 : The simplest way to resize an UIImage? 또는 자세한 내용을 https://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more
- 이미지에 압축
다음과 같이 선언 된 UIImageJPEGRepresentation C 함수를 사용할 수 있습니다.
NSData * UIImageJPEGRepresentation (
UIImage *image,
CGFloat compressionQuality
);
... UIImage 객체를 전달하고 압축 품질을 0.0 (최대 압축)에서 1.0 (최고 품질)까지 설정할 수 있습니다.
- EXIF 손실이 EXIF을 잃지 않고 이미지를 압축 할 경우
먼저 이미지의 속성을 가져올해야 https://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more
0
에서 답변을 참조, 데이터 UIImageJPEGRepresentation 당신은 EXIF를 포함하지 얻을.
1 getoritatinal 화상 데이터 2 providerData 3 압축 : 프랑수아 EXIF 데이터
- (void)setImagePropertyWith:(ALAsset *)asset
{
//get full imageData
ALAssetRepresentation * defaultRep = [asset defaultRepresentation];
Byte *buffer = (Byte*)malloc(defaultRep.size);
NSUInteger buffered = [defaultRep getBytes:buffer fromOffset:0.0 length:defaultRep.size error:nil];
NSData * data = [NSData dataWithBytesNoCopy:buffer length:buffered freeWhenDone:YES];
// compressData providerData
CGDataProviderRef jpegdata = CGDataProviderCreateWithCFData((CFDataRef)data);
CGImageRef imageRef = CGImageCreateWithJPEGDataProvider(jpegdata, NULL, YES, kCGRenderingIntentDefault);
UIImage * image = [UIImage imageWithCGImage:imageRef];
NSData* finaldata = UIImageJPEGRepresentation(image, 0.5);
//compressData with exif
finaldata = [self writeExif:(NSDictionary *)[self getPropertyOfdata:data] intoImage:finaldata];
}
- (CFDictionaryRef)getPropertyOfdata:(NSData *)data
{
CGImageSourceRef imageSource = CGImageSourceCreateWithData((CFDataRef)data, NULL);
if (imageSource == NULL) {
// Error loading image
return nil;
}
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:NO], (NSString *)kCGImageSourceShouldCache,
nil];
CFDictionaryRef imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, (CFDictionaryRef)options);
NSLog(@"ori:%@",imageProperties);
return imageProperties;
// [self writeExif: (NSDictionary *)imageSource intoImageData:data];
}
+0
writeExif 메소드 게시를 잊어 버렸습니다. – CGR
관련 문제
- 1. exif 데이터가 저장되지 않음
- 2. 바이너리 데이터가 포함 된 JSON
- 3. iPhone - HTTP를 통해 수신 된 이미지의 JPEG 데이터가 손상됨
- 4. 아이폰에서 이미지의 크기
- 5. UTF8 데이터가 포함 된 NSXMLParser
- 6. "동적"데이터가 포함 된 wxVListBox
- 7. Exif 및 iPhone 파일
- 8. 이미지의 크기
- 9. Exif 데이터가 문자열을 반환합니까? 박스 문자 만
- 10. iPhone : 서명 된 대신 서명 된 바이트를 저장하는 CFReadStreamRead
- 11. CoreData가 포함 된 iPhone 앱
- 12. rails3에 업로드 된 이미지의 동적 이미지 크기
- 13. http를 통해로드 된 이미지의 크기 (너비, 높이)
- 14. 로컬로로드 된 큰 이미지의 크기 가져 오기
- 15. 포함 된 문서 크기 제한
- 16. 여러 테이블의 데이터가 포함 된 SQL 삽입
- 17. 마이크로 데이터가 포함 된 프로젝트 참조
- 18. 코어 데이터가 포함 된 깨진 멀티 스레딩
- 19. GridControl에 포함 된 데이터가 표시되지 않습니다.
- 20. 코어 데이터가 포함 된 편집 가능한 TableView
- 21. 관련 모델 데이터가 포함 된 Automagic
- 22. MVC 연락처 데이터가 포함 된 아티스트 만들기
- 23. Ajax를 통해 데이터가 포함 된 "@"기호를 전송하십시오.
- 24. 안드로이드에서 이미지의 크기
- 25. 배경 이미지의 크기
- 26. 이미지의 크기 줄이기 (KB 단위)
- 27. UIWebView가 포함 된 iPhone 앱
- 28. 이미지의 자바 크기 조정 센터
- 29. 추가 데이터가 포함 된 Gzip 파일을 사용하려면 어떻게해야합니까?
- 30. iphone nslog 데이터가 손상되었습니다
에게 답변 감사 압축. Wil 그것으로 들여다 봐 – rakendu