2012-04-01 42 views
8

Tôi đang hiển thị một hình ảnh trong ô xem bảng (tên hình ảnh được lưu trong một plist). Trước khi đặt nó vào ô, tôi đang đổi kích thước hình ảnh thành
imageSize = CGSizeMake(32, 32);IOS: Giảm kích thước hình ảnh mà không làm giảm chất lượng hình ảnh

Nhưng sau khi thay đổi kích thước hình ảnh, chất lượng cũng bị xuống cấp trong màn hình võng mạc.

enter image description here

Tôi có cả những hình ảnh bổ sung vào dự án (ví dụ: 1x và @ 2x).

Đây là cách tôi giảm kích thước hình ảnh xuống 32x32.

+ (UIImage *)scale:(UIImage *)image toSize:(CGSize)size 
{ 
UIGraphicsBeginImageContext(size); 
[image drawInRect:CGRectMake(0, 0, size.width, size.height)]; 
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
return scaledImage; 
} 

Mọi con trỏ về điều này được đánh giá rất nhiều.

Cảm ơn

Trả lời

19

thử điều này: thay vì sử dụng UIGraphicsBeginImageContext(size);UIGraphicsBeginImageContextWithOptions(size,NO,0.0);

từ những gì tôi hiểu những gì bạn đang làm gì ở đó được thay đổi kích thước hình ảnh để 32x32 (trong điểm) không có vấn đề gì giải quyết. UIGraphicsBeginImageContextWithOptions chia tỷ lệ hình ảnh thành tỷ lệ màn hình của thiết bị..và bạn đã đổi kích thước hình ảnh thành 32x32 điểm nhưng độ phân giải được giữ cho màn hình võng mạc

(lưu ý rằng đây là những gì tôi hiểu từ tài liệu tham khảo uikit của apple..it có thể không được như vậy .. nhưng nó nên) đọc here

+0

Tuyệt vời, điều này làm việc như bất cứ điều gì. Cảm ơn nhiều. –

+0

Ước gì tôi có thể upvote điều này nhiều hơn, cảm ơn bạn rất nhiều! – ryan0

+1

chất lượng hình ảnh vẫn không tốt .... –

Các vấn đề liên quan