Est-il possible de redimensionner un UIImage
à la taille du cadre? Prenez une grande image et "forcez-la" dans la petite boîte.Comment redimensionner une image dans un cadre?
S'il vous plaît donner un exemple
Est-il possible de redimensionner un UIImage
à la taille du cadre? Prenez une grande image et "forcez-la" dans la petite boîte.Comment redimensionner une image dans un cadre?
S'il vous plaît donner un exemple
Si vous parlez en fait de changer la UIImage et non pas seulement de changer le cadre d'affichage, qui peut être fait comme décrit par Mark, en changeant le UIViewContentMode de l'UIImageView, vous pouvez changer la taille de l'image réelle avec l'extension UIImage suivante (tirée de cette source)
- (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize
{
UIImage *sourceImage = self;
UIImage *newImage = nil;
CGSize imageSize = sourceImage.size;
CGFloat width = imageSize.width;
CGFloat height = imageSize.height;
CGFloat targetWidth = targetSize.width;
CGFloat targetHeight = targetSize.height;
CGFloat scaleFactor = 0.0;
CGFloat scaledWidth = targetWidth;
CGFloat scaledHeight = targetHeight;
CGPoint thumbnailPoint = CGPointMake(0.0,0.0);
if (CGSizeEqualToSize(imageSize, targetSize) == NO)
{
CGFloat widthFactor = targetWidth/width;
CGFloat heightFactor = targetHeight/height;
if (widthFactor > heightFactor)
scaleFactor = widthFactor; // scale to fit height
else
scaleFactor = heightFactor; // scale to fit width
scaledWidth = width * scaleFactor;
scaledHeight = height * scaleFactor;
// center the image
if (widthFactor > heightFactor)
{
thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;
}
else
if (widthFactor < heightFactor)
{
thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;
}
}
UIGraphicsBeginImageContext(targetSize); // this will crop
CGRect thumbnailRect = CGRectZero;
thumbnailRect.origin = thumbnailPoint;
thumbnailRect.size.width = scaledWidth;
thumbnailRect.size.height = scaledHeight;
[sourceImage drawInRect:thumbnailRect];
newImage = UIGraphicsGetImageFromCurrentImageContext();
if(newImage == nil)
NSLog(@"could not scale image");
//pop the context to get back to the default
UIGraphicsEndImageContext();
return newImage;
}
possible de duper cette question: How to scale a UIImageView proportionally?
Je vais copier le texte de réponse acceptée aussi bien. En supposant que votre cadre est un uiview:
imageView.contentMode = UIViewContentModeScaleAspectFit;
fera ce que vous voulez.
de la documentation, voici les autres options de mise à l'échelle
UIViewContentMode
Specifies how a view adjusts its content when its size changes.
typedef enum {
UIViewContentModeScaleToFill,
UIViewContentModeScaleAspectFit,
UIViewContentModeScaleAspectFill,
UIViewContentModeRedraw,
UIViewContentModeCenter,
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,
} UIViewContentMode;
pomme Documentation ici: http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIImageView_Class/Reference/Reference.html
il parle de UIImage - ceci n'évolue pas l'image mais seulement ce qui est dessiné par la vue –
Quel cadre? Précisez s'il vous plaît. –