2012-03-31 6 views
0

Gibt es eine Möglichkeit, ein Bild aus der Bibliothek zu laden oder ein neues aufzunehmen, es auf eine kleinere Größe zu verkleinern, um es bearbeiten zu können, und es dann in der Originalgröße zu speichern? Ich kämpfe damit und kann es nicht zur Arbeit bringen. Ich habe den Resize-Code-Setup wie folgt aus:Resize UIImage zum Bearbeiten und Speichern in hoher Auflösung?

firstImage = [firstImage resizedImageWithContentMode:UIViewContentModeScaleAspectFit bounds:CGSizeMake(960, 640) interpolationQuality:kCGInterpolationHigh]; 

und ich habe dann eine UIImageView:

[finalImage setFrame:CGRectMake(10, 100, 300, 232)]; 
finalImage.image = firstImage; 

wenn ich Setup die CGSizeMake in der Originalgröße des Bildes es ein sehr langsamer Prozess ist. Ich habe in anderen Apps gesehen, dass sie an einem kleineren Bild arbeiten und der Bearbeitungsprozess ist sogar für Effekte ziemlich schnell. Was ist der Ansatz dafür?

Antwort

1

Sie können sich auf Move and Scale Demo beziehen. Dies ist ein benutzerdefiniertes Steuerelement, das das Verschieben und Skalieren und Zuschneiden von Bildern implementiert, was sehr hilfreich für Sie sein kann.

Dies ist auch der einfachste Code zum Skalieren von Bildern auf die angegebene Größe. Siehe hier: Resize/Scale of an Image

Sie verweisen darauf Code ist hier

// UIImage+Scale.h 

@interface UIImage (scale) 

-(UIImage*)scaleToSize:(CGSize)size; 

@end 

Implementierung UIImage Maßstab Kategorie Mit der Schnittstelle vorhanden, lassen Sie uns den Code für die Methode schreiben, die auf die UIImage hinzugefügt werden Klasse.

// UIImage+Scale.h 

#import "UIImage+Scale.h" 

@implementation UIImage (scale) 

-(UIImage*)scaleToSize:(CGSize)size 
{ 
    // Create a bitmap graphics context 
    // This will also set it as the current context 
    UIGraphicsBeginImageContext(size); 

    // Draw the scaled image in the current context 
    [self drawInRect:CGRectMake(0, 0, size.width, size.height)]; 

    // Create a new image from current context 
    UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); 

    // Pop the current context from the stack 
    UIGraphicsEndImageContext(); 

    // Return our new scaled image 
    return scaledImage; 
} 

@end 

die UIImage Scale-Methode Mit der neuen Skalenmethode aufrufen wir UIImage hinzugefügt ist so einfach wie diese:

#import "UIImage+Scale.h" 

... 

// Create an image 
UIImage *image = [UIImage imageNamed:@"myImage.png"]; 

// Scale the image 
UIImage *scaledImage = [image scaleToSize:CGSizeMake(25.0f, 35.0f)]; 

Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen.

Hoffe das hilft dir.

+0

Ich werde einen Blick darauf werfen, danke – devC

+0

@devC: Ich habe meine Antwort bearbeitet. Ich habe auch einen weiteren einfachen Code und seinen Link hinzugefügt. Bitte sehen Sie sich auch dieses an. –

+0

Ich habe diesen Weg versucht, aber es gibt mir ein unscharf skaliertes Bild. – devC

Verwandte Themen