Le cadre de l'UIImageView n'a rien à voir avec la taille de l'image qu'il affiche. Si vous affichez un pixel 1200 x 1600 dans une image 75 x 75, la taille de l'image en mémoire est toujours de 1200 x 1600. Quelque part dans le traitement de l'image, vous réinitialisez sa taille.
Vous devez redimensionner les images par programme dans les coulisses et ignorer leur mode d'affichage. Pour la plus haute fidélité, je suggère de préformer tous les traitements sur l'image en taille réelle et de ne redimensionner que le résultat final. Pour une utilisation rapide et peu gourmande en mémoire, redimensionnez d'abord les plus petits, traitez-les, puis redimensionnez-les au besoin.
J'utilise Trevor Harmon's UIImage+Resize pour redimensionner des images.
Sa méthode de base ressemble à ceci:
- (UIImage *)resizedImage:(CGSize)newSize
transform:(CGAffineTransform)transform
drawTransposed:(BOOL)transpose
interpolationQuality:(CGInterpolationQuality)quality
{
CGRect newRect = CGRectIntegral(CGRectMake(0, 0, newSize.width, newSize.height));
CGRect transposedRect = CGRectMake(0, 0, newRect.size.height, newRect.size.width);
CGImageRef imageRef = self.CGImage;
// Build a context that's the same dimensions as the new size
CGContextRef bitmap = CGBitmapContextCreate(NULL,
newRect.size.width,
newRect.size.height,
CGImageGetBitsPerComponent(imageRef),
0,
CGImageGetColorSpace(imageRef),
CGImageGetBitmapInfo(imageRef));
// Rotate and/or flip the image if required by its orientation
CGContextConcatCTM(bitmap, transform);
// Set the quality level to use when rescaling
CGContextSetInterpolationQuality(bitmap, quality);
// Draw into the context; this scales the image
CGContextDrawImage(bitmap, transpose ? transposedRect : newRect, imageRef);
// Get the resized image from the context and a UIImage
CGImageRef newImageRef = CGBitmapContextCreateImage(bitmap);
UIImage *newImage = [UIImage imageWithCGImage:newImageRef];
// Clean up
CGContextRelease(bitmap);
CGImageRelease(newImageRef);
return newImage;
}
Harmon m'a sauvé des dizaines d'heures de travail en essayant d'obtenir Redimensionnement fait correctement.
question est probablement trop vague pour y répondre - essayez le mode d'être –
détaillées et spécifiques merci pour la réponse, j'utilise deux images de taille 1200 * 1600. pour la compatibilité d'iphone je prends des vues d'image de 320 * 480 pour montrer les deux images ... Après cela je dessine une nouvelle image de ces deux images son obtention de 320 * 480 par taille mais j'ai besoin de sa taille originale de la taille 1200 * 1600 comment puis-je avoir. actuellement en train de redimensionner l'image au format 1200 * 1600, mais cela me donne une image floue. – Madhu