[FIXED] Wie kann ich die Größe von NSImage ändern?

Ausgabe

Ich habe eine NSBitmapImageRepGröße Wx H.

Ich erstelle NSImageund rufe an addRepresentation:. Dann muss ich die Größe ändern NSImage.

Ich habe die setSizeMethode versucht, aber es funktioniert nicht. Was soll ich machen?

Lösung

Bearbeiten:
Da diese Antwort immer noch die akzeptierte Antwort ist, aber ohne Berücksichtigung von Retina-Bildschirmen geschrieben wurde, werde ich weiter unten im Thread direkt auf eine bessere Lösung verlinken:
Objective-C Swift 4


Da die Methode von Paresh völlig korrekt, aber seit 10.8 veraltet ist, poste ich den funktionierenden 10.8-Code unten. Alle Anerkennung für Pareshs Antwort.

- (NSImage *)imageResize:(NSImage*)anImage newSize:(NSSize)newSize {
    NSImage *sourceImage = anImage;
    [sourceImage setScalesWhenResized:YES];
    
    // Report an error if the source isn't a valid image
    if (![sourceImage isValid]){
        NSLog(@"Invalid Image");
    } else {
        NSImage *smallImage = [[NSImage alloc] initWithSize: newSize];
        [smallImage lockFocus];
        [sourceImage setSize: newSize];
        [[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];
        [sourceImage drawAtPoint:NSZeroPoint fromRect:CGRectMake(0, 0, newSize.width, newSize.height) operation:NSCompositingOperationCopy fraction:1.0];
        [smallImage unlockFocus];
        return smallImage;
    }
    return nil;
}


Beantwortet von –
Git.Coach


Antwort geprüft von –
Jay B. (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like