2013-11-03 23 views
9

Sto cercando di utilizzare CGImageCreateWithImageInRect per ottenere un'immagine secondaria da un'immagine ma non funziona correttamente. Restituisce l'immagine da una posizione casuale nell'immagine, anziché da quella specificata. Si prega di dare un'occhiata alla seguente immagine;CGImageCreateWithImageInRect non funziona correttamente

enter image description here

Il mio codice è:

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

Ma questo non funziona. Che cosa sto facendo di sbagliato?

Grazie!

+1

Oltre a @ di HalR risposta, si noti che l'asse y è capovolto nel core grafico di default, quindi probabilmente si desidera y = 0 qui. –

+0

Upvote per cleveland :) – MobileMon

risposta

6

È probabile che l'immagine abbia un UIImageOrientation impostato diverso da quello che ci si aspetta. L'iOS mostrerà l'immagine correttamente, tuttavia l'immagine verrà memorizzata di lato (per mancanza di un termine migliore).

Così quando mi dai il rect a partire da x, y otterrai y, x, o qualche pazzia casuale perché stai accedendo a un rect che è al di fuori dell'intervallo normale.

This answer parla di come correggere l'orientamento.

Problemi correlati