2013-11-03 25 views
9

Tôi đang cố gắng sử dụng CGImageCreateWithImageInRect để lấy một hình ảnh phụ từ một hình ảnh nhưng nó không hoạt động đúng cách. Nó trả về hình ảnh từ một vị trí ngẫu nhiên trong hình ảnh, thay vì hình ảnh tôi chỉ định. Hãy nhìn vào hình ảnh sau đây;CGImageCreateWithImageInRect không hoạt động đúng cách

enter image description here

Mã của tôi là:

CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], CGRectMake(524, 1331, 600, 600)); 
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef]; 
CGImageRelease(imageRef); 

Nhưng điều đó không làm việc. Tôi đang làm gì sai?

Cảm ơn!

+1

Ngoài câu trả lời @ HalR của, lưu ý rằng các trục y là lộn trong lõi đồ họa theo mặc định, vì vậy bạn có thể muốn y = 0 đây. –

+0

Upvote cho cleveland :) – MobileMon

Trả lời

6

Có khả năng hình ảnh của bạn có bộ UIImageOrientation được đặt cho nó khác với những gì bạn đang mong đợi. IOS sẽ hiển thị hình ảnh đúng cách, nhưng hình ảnh sẽ được lưu trữ ngang (vì thiếu một thuật ngữ tốt hơn).

Vì vậy, khi bạn nói cho tôi bắt đầu trực tiếp tại x, y bạn sẽ nhận được y, x thay vào đó, hoặc một số điên cuồng ngẫu nhiên bởi vì bạn đang truy cập vào một rect nằm ngoài phạm vi bình thường.

This answer nói về việc sửa định hướng.

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