Ho problemi a ritagliare l'immagine. Per me il filtro CICrop non funziona correttamente. Se il mio CIVector xey (le origini) sono 0 tutto funziona correttamente (l'immagine è ritagliata dall'angolo in basso a sinistra), l'immagine viene ritagliata dalla larghezza e dall'altezza del mio rettangolo, ma se le origini di CIVector (xey) non sono 0 nel mio ritaglio l'immagine diventa spazio (perché il filtro CICrop ritaglia dall'angolo in basso a sinistra indipendentemente dalle origini (xey)).Il ritaglio di CIImage con CICrop non funziona correttamente
sto ritaglio CIImage con bottone, fonte:
CIVector *cropRect =[CIVector vectorWithX:150 Y:150 Z: 300 W: 300];
CIFilter *cropFilter = [CIFilter filterWithName:@"CICrop"];
[cropFilter setValue:myCIImage forKey:@"inputImage"];
[cropFilter setValue:cropRect forKey:@"inputRectangle"];
CIImage *croppedImage = [cropFilter valueForKey:@"outputImage"];
immagine di uscita con CIVector X e Y 150 150: (I disegnato il confine per chiarezza)
Immagine di uscita con CIVector X 0 e Y 0:
Immagine originale:
Quello che sto facendo di sbagliato? O dovrebbe fare questo?
Grazie Rob! È buono per disegnare un'immagine, ma come farlo se ho bisogno di CIImage ritagliato, non per disegnare, ma CIImage. Converti in NSImage lockfocus -> disegna immagine -> unlockfocus -> converti in CIImage. Hmm, penso che questo non sia buono, forse Puoi suggerirmi come ottenere CIImage completamente ritagliato? Grazie ancora per il tuo aiuto Rob. +1 –
Ho aggiunto un esempio del metodo 'imageByCroppingToRect:' alla mia risposta, che otterrà ciò che desideri. –
Hmm .. questo non funziona per me, lo stesso problema. Guarda la mia domanda ho aggiunto il codice di aggiornamento in fondo. Grazie per la pazienza, Rob. –