2013-03-19 4 views
5

망막 디스플레이 작업시 문제가 발생했습니다. NSImage 크기는 정확 합니다만, NSBitmapImageRep을 작성하여 파일에 쓰면 이미지 마녀의 크기는 원본 이미지의 두 배입니다. 내가 망막이 아닌 화면에서 사용할 때 그런 문제는 없습니다. 내가 이미지 작업시 망막 디스플레이 문제

  • 내가 3840x2160 크기
  • 와 이미지를 얻을 파일에 기록
    • 은 내가 도면과 이미지에서 NSBitmapImageRep를 만들 내가
    • 에 일부 도면을 파일 (1920 × 1080)
    • 에서 NSImage를 만들

    그 원인은 무엇일까요? I 화상을 열어서 편집없이 저장할 경우


    NSImage *originalImage = [[NSImage alloc] initWithContentsOfURL:fileUrl]; 
    
    NSImage *editedImage = [[NSImage alloc] initWithSize:originalImage.size]; 
    
    [editedImage lockFocus]; 
    //I draw here NSBezierPaths 
    [editedImage unlockFocus]; 
    
    NSBitmapImageRep *savingRep = [NSBitmapImageRep imageRepsWithData:[editedImage TIFFRepresentation]]; 
    NSData *savingData = [savingRep representationUsingType: NSPNGFileType properties: nil]; 
    [savingData writeToFile:desiredFileLocationAndName atomically:no]; 
    

    나는 화상의 비트 맵 표현은 픽셀 단위로 측정된다

    NSImage *imageFromFile = [[NSImage alloc] initWithContentsOfURL:fileURL]; 
    NSBitmapImageRep *newRepresentation = [[NSBitmapImageRep imageRepsWithData:[imageFromFile TIFFRepresentation]]; 
    NSData *savingData = [newRepresentation representationUsingType: NSPNGFileType properties: nil]; 
    [savingData writeToFile:desiredFileLocationAndName atomically:no]; 
    
  • +0

    이 답변을 확인하십시오. http://stackoverflow.com/a/17510651/1159775 – hebinda

    답변

    0

    올바른 기준 화상을 얻는다. 은 크기가 두 배인입니다. NSImage는 망막 장치가 포인트 당 2 픽셀을 측정하는 포인트를 제공합니다. 그게 당신에게주는 것에는 아무런 문제가 없습니다.

    +0

    특히 새로운 차원이 어렵게 만들 필요가있는 것이 있습니까? –

    +0

    문제는 이미지를 열어 내 앱으로 처리 할 때 이미지를 저장할 때 픽셀 크기가 이전보다 두 배 커집니다. 원본 이미지 크기를 유지해야합니다. – hockeyman

    +0

    각 단계에 대해 사용중인 코드를 게시 할 수 있습니까? 그 문제를 피하기 위해 설정할 수있는 깃발이 있다고 생각합니다. –

    관련 문제