Domanda

Sto cercando di salvare un UIImageView ruotato e ridimensionato come un UIImage nella posizione e con la scala dello zoom che anche l'utente ha modificato. Ma riesco solo a salvare l'immagine originale com'era prima della modifica. Come posso salvare l'immagine come viene mostrata in UIImageView con lo stesso ridimensionamento e rotazione? Ho letto che devo usare UIGraphicsGetCurrentContext () ma ottengo la stessa immagine originale salvata (ma capovolta) e non quella ruotata !! Suggerimenti e suggerimenti sarebbero davvero utili. Grazie in anticipo. Al

(UIImage *)getImage
{
CGSize size = CGSizeMake(250, 250);
UIGraphicsBeginImageContext(size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGMutablePathRef path = CGPathCreateMutable();

// Add circle to path
CGPathAddEllipseInRect(path, NULL, CGRectMake(0, 0, 250, 250));
CGContextAddPath(context, path);

// ****************** touchImageView is my UIImageView ****************//
CGContextDrawImage(context, CGRectMake(0, 0, 250, 250), [touchImageView image].CGImage);

UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();

// Clip to the circle and draw the logo
CGContextClip(context);
UIGraphicsEndImageContext();

return scaledImage;

}

È stato utile?

Soluzione

Non vedo nulla nel codice che hai pubblicato che possa ruotare un'immagine. Hai dimenticato di aggiungerlo?

Sembra che tu sia sulla buona strada. Ora dovresti usare le routine di trasformazione CGContextScaleCTM e CGContextRotateCTM per modificare la matrice di trasformazione in modo appropriato, quindi (per evitare il capovolgimento), usa - [UIImage drawAtPoint:] per disegnare UIImage invece di usare CGContextDrawImage .

Altri suggerimenti

Alle trasformazioni basate sulla vista viene applicato l'output del contesto e non il contesto stesso. Credo che devi ridimensionare e ruotare il contesto dell'immagine stesso usando testo del link funzioni specifiche della grafica principale.

(Potrei sbagliarmi. Non ricordo esattamente come ho fatto questo in passato. Prendilo con un granello di sale.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top