我正在創建具有不同大小縮略圖的圖像庫。我想將這些矩形縮略圖轉換爲方形大小,以使它們的大小看起來都相似。我不介意從擴展部分中裁剪它,但我不知道如何去做。誰能幫幫我嗎?使用目標將矩形圖像轉換爲方形圖像c
感謝
潘卡
我正在創建具有不同大小縮略圖的圖像庫。我想將這些矩形縮略圖轉換爲方形大小,以使它們的大小看起來都相似。我不介意從擴展部分中裁剪它,但我不知道如何去做。誰能幫幫我嗎?使用目標將矩形圖像轉換爲方形圖像c
感謝
潘卡
您需要使用圖像中的矩形方法通過圖像和所需的邊界在...
CGImageRef imageRef = CGImageCreateWithImageInRect([anImage CGImage], requiredBounds);
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
我已經加入這個一個UIImage類(UIImage的+你可以下載源代碼 - Categories example
謝謝西蒙,你的代碼幫助我解決了我的問題 – pankaj 2012-02-03 09:48:38
那麼,如果你使用UIImageView
來顯示你的圖像(至少我確信你可以),你可以將其設置爲contentMode
財產至UIViewContentModeScaleAspectFill
。這應該「裁剪」你的圖像到你的UIImageView的邊界。如果您的圖片將超出UIImageView
的邊界,請確保clipsToBounds
也設置爲YES
。
讓我知道是否有幫助。
這實際上並不*創建*縮略圖,只是使它看起來像一個... – 2012-02-03 09:19:23
我同意。這是'簡單'的出路:P – 2012-02-03 10:10:51
我正在使用下一個方法。輸入是要縮放的UIImage以及UIImage所在的UIImageView的框架的大小。它在框架的高度和寬度相等時起作用。
一件重要的事情:我保持圖像的比例。我不擴大圖像覆蓋整個廣場。如果你想這樣做,你必須改變'drawInRect'行[self drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
並刪除if-else。
- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
CGFloat scaleRatio;
if (image.size.width > image.size.height) {
scaleRatio = image.size.height/image.size.width;
}else{
scaleRatio = image.size.width/image.size.height;
}
CGAffineTransform scaleTransform = CGAffineTransformMakeScale(scaleRatio, scaleRatio);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextConcatCTM(context, scaleTransform);
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0);
if (image.size.width > image.size.height) {
[image drawInRect:CGRectMake(0, (newSize.height/2)-(newSize.height*scaleRatio/2), newSize.width, newSize.height*scaleRatio)];
}else{
[image drawInRect:CGRectMake((newSize.width/2)-(newSize.width*scaleRatio/2), 0, newSize.width*scaleRatio, newSize.height)];
}
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
這將有助於 - http://stackoverflow.com/questions/4789067/iphone-mask-uiimageview-of-differing-dimensions-into-square-dimension – 2012-02-03 09:17:53
實際上並不*創建*縮略圖,只是使它看起來像一個... – 2012-02-03 09:19:16