NSImage DPI вопрос - PullRequest
       8

NSImage DPI вопрос

3 голосов
/ 20 января 2011

Может кто-нибудь сказать мне, как я могу получить истинную ширину и высоту NSImage? Я заметил, что изображения с более высоким DPI, чем 72, имеют неточные ширину и высоту с параметрами NSImage.size.

Я видел этот пример на Кокоадеве:

NSBitmapImageRep *rep = [image bestRepresentationForDevice: nil];

NSSize pixelSize = NSMakeSize([rep pixelsWide],[rep pixelsHigh]);

Однако bestRepresentationForDevice устарела в 10.6 ... что я могу использовать в качестве альтернативы, документация не предлагает другого метода?

Ответы [ 3 ]

4 голосов
/ 20 января 2011

Создайте свой NSBitmapImageRep из представления TIFF NSImage

NSBitmapImageRep* rep = [NSBitmapImageRep imageRepWithData:[image TIFFRepresentation]];
1 голос
/ 17 мая 2012

Итерация по представлению изображения в поисках изображения с наибольшим размером. Вызов -bestRepresentationForRect: context: hints: должен сделать это за вас, если вы кормите очень большой прямоугольник.

0 голосов
/ 15 мая 2012
@interface NSImage (Representation)
-(NSBitmapImageRep*)bitmapRepresentation;
@end

@implementation NSImage (Representation)
-(NSBitmapImageRep*)bitmapRepresentation {
    for (id thing in self.representations) {
        if (![thing isKindOfClass:[NSBitmapImageRep class]]) continue;
        return (NSBitmapImageRep*)thing;
    }
    return nil;
}
@end
...