2011-03-14 4 views
4

내 대상은 뷰에 이미지를 표시하는 것입니다. 고려 I했습니다 :NSData에서 NSImage 표시

    디스플레이 이미지 파일을 readig 내 이미지
  • 을 NSData * imageData의에 대한 이미지가
  • NSImage * 이미지 뷰는
  • imageData의에서

이미지를 저장 *

  • 함께 IBOutlet NSImageView (initWithContentsOfFile 메소드를 사용했습니다). 이제

    , 내가 가진 이미지 뷰를 초기화하는 경우 :

    NSImage *imageView = [[NSImage alloc] initWithContentsOfFile:path]; 
    

    나는 제대로 이미지의 렌더링을 볼 수 있지만이 방법으로 나는 파일 시스템에서 두 번 읽고 있어요. 내가하려고하면

    는 :

    CGImageSourceRef imageSource = CGImageSourceCreateWithData((CFDataRef)imageData, NULL); 
    CGImageRef imageRef= CGImageSourceCreateImageAtIndex(imageSource, 0, nil); 
    NSImage *imageView = [[NSImage alloc] initWithCGImage:imageRef size:NSZeroSize]; 
    

    이미지가 여전히 렌더링됩니다 너무 작 :

    NSImage *imageView = [[NSImage alloc] initWithData:imageData]; 
    

    표시되는 이미지는 매우 small..like 엄지 손가락을

    성령 강림절 CGImageRef입니다.

    어떻게 이미지를 원래 해상도로 표시 할 수 있습니까?

  • +0

    'initWithContentsOfFile :'이 (가)'NSImage'에서 작동하는 경우 왜 여전히 NSData가 필요합니까? (하지만 이상하다는 데 동의합니다. 이미지 표현이나 크기 조정 문제 일 수 있습니다.) – Richard

    +0

    내 게시물을 편집했습니다 : added imageSource – Matteo

    +0

    exif 태그를 읽을 수있는 NSData가 있습니다. – Matteo

    답변

    5
    NSImage *imageView = [[NSImage alloc] initWithData:(NSData *)imageData]; 
    
    +0

    응답 해 주셔서 감사합니다. 나는 가능한 한 빨리 시험해보고 너를 다시 먹일거야. – Matteo

    +0

    효과가 있었나요? –

    +0

    늦게 회신하면 죄송합니다. 컴파일 할 때 내 프로젝트에 코드를 붙여 넣을 때 _error : Semantic Issue : Unknown receiver 'UIImage'; 당신이 'CIImage'를 의미 했습니까? _ UIImage를 CIImage로 변경하면 컴파일러에서 나에게 경고합니다. 시맨틱 문제 : 'NIImage *'형식을 'CIImage *'식으로 초기화하는 호환되지 않는 포인터 유형 및 컴파일러를 실행하려고하면 _ 아키텍처 x86_64에 대한 정의되지 않은 기호 : "_OBJC_CLASS _ $ _ CIImage": ButtonsAppDelegate.old의 objc-class-ref에서 참조 : 아키텍처 x86_64에 대한 기호를 찾을 수 없습니다. clang : 오류 : 링커 명령이 종료 코드로 실패했습니다 1_ – Matteo