1
我有一個視圖正在通過UIPinchGesture縮小比例。該視圖的子視圖是帶有關聯圖像的UIImageView。問題在於,縮小比例似乎影響圖像的質量,當它達到原始大尺寸的1/4時。CGAffineTransformScale問題與圖像質量
我很好奇,如果有一種方法可以解決這個問題,而不需要按照縮小的尺寸重新繪製圖像。
我有一個視圖正在通過UIPinchGesture縮小比例。該視圖的子視圖是帶有關聯圖像的UIImageView。問題在於,縮小比例似乎影響圖像的質量,當它達到原始大尺寸的1/4時。CGAffineTransformScale問題與圖像質量
我很好奇,如果有一種方法可以解決這個問題,而不需要按照縮小的尺寸重新繪製圖像。
我會說不。
要在所有狀態下改善圖像可見質量(無需重新縮放任何內容),最佳選擇是將原始圖像縮放至屏幕上最大和最小尺寸之間的一半。這將導致GPU最小的圖像縮放。
除此之外,只需重新調整每當你應用通過變換到視圖圖像:
+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
//UIGraphicsBeginImageContext(newSize);
// In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution).
// Pass 1.0 to force exact pixel size.
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
您可能需要擔心的縱橫比,但這是另一個問題完全。
這就是我正在做的,但我希望有更好的解決方案。謝謝。 – Jordan
更好的解決方案是什麼? UI平滑度,內存管理等...? – Putz1103
一個解決方案,我不必在縮小時多次重新繪製圖像。當我從全屏視圖縮小到縮略圖時,只需重新繪製一次就可以進行像素化。我不得不有不同的重繪門檻。 – Jordan