2012-07-02 10 views
12

Tôi đang tạo CIImage từ một UIImage như sau:UIImage to CIImage - kích thước giảm một nửa?

CIImage* someCIImage = [CIImage imageWithCGImage:someUIImage.CGImage]; 

So sánh someCIImage.extent.size.width/height với someUIImage.size.width/height, tôi thấy rằng đôi khi CIImage là kích thước gấp đôi về kích thước, và đôi khi cùng kích thước của nó như là UIImage.

Dường như nếu UIImage lớn hơn một chút, CIImage có kích thước gấp đôi, trong khi nếu UIImage nhỏ hơn một chút thì không phải như vậy.

Có ai nhìn thấy điều này trước/biết tại sao điều này không? Điều này khiến tôi gặp rắc rối thực sự khi tôi đang cố gắng vẽ một CIImage từ một UIImage đã tải.

+2

Tôi tự hỏi điều này có liên quan gì đến đồ họa Retina Display không? –

+1

Kiểm tra phương thức 'scale' của' UIImage'; nó sẽ cho bạn biết làm thế nào để chuyển đổi kích thước thành pixel. –

+0

Tôi gặp vấn đề tương tự khi làm rối tung CIFilter. Trước khi sử dụng bộ lọc, tôi sử dụng một phần UIImage để CIImage chuyển đổi. Bình luận của bạn đã giúp tôi, nhưng vẫn có một số vấn đề để tìm ra CIFilter cuối cùng. UIImage-tài sản quy mô thực sự là 2 tại các thiết bị võng mạc. – nodepond

Trả lời

8

size phải làm gì với khoảng cách giữa các điểm trên màn hình, vì vậy số điểm trên màn hình võng mạc được tăng gấp đôi. size không không đại diện cho số lượng pixel như bạn giả định.

+0

Để làm gì với nó, bạn sẽ cần phải mở rộng hình ảnh của bạn như được chỉ ra trong các bình luận ở trên. –