2009-12-17 12 views

risposta

0

Dai un'occhiata alla this blog post, che contiene il codice per iPhone OS 2.x & 3.0

+4

Questo post non aiuta. Riguarda l'immagine restituita che non viene ritagliata correttamente in base al rettangolo predefinito predefinito nella visualizzazione di ritaglio e scala incorporata, che viene corretto in iOS 4.x. La domanda, credo, riguarda la possibilità di modificare le proporzioni della funzionalità di anteprima/ritaglio. Anybodu ha avuto fortuna con quello? – esbenr

0

Il dizionario del metodo delegato restituisce tutto ciò che:

NSString *const UIImagePickerControllerMediaType; 
NSString *const UIImagePickerControllerOriginalImage; 
NSString *const UIImagePickerControllerEditedImage; 
NSString *const UIImagePickerControllerCropRect; 
NSString *const UIImagePickerControllerMediaURL; 
NSString *const UIImagePickerControllerReferenceURL; 
NSString *const UIImagePickerControllerMediaMetadata; 

presumo, hai utilizzato l'EditedImage che è praticamente inutile ... forse per alcune anteprime ... comunque, il dizionario delle informazioni contiene dati CropRect, l'unica cosa che devi fare è ricalcolare le dimensioni e ritagliare l'Immagine Originale da te stesso, usando ad esempio questo: UIImage: Resize, then Crop

non ho ancora testato, questa è solo teoria :) ... ma in teoria, questo dovrebbe funzionare: D

0

Dopo aver ottenuto immagine da un'immagine picker e dare funzionalità delle colture come modulo diverso. Quindi l'utente può selezionare la parte dell'immagine che si desidera ritagliare.

+0

Questo dovrebbe essere un commento. Non una risposta – Praveenkumar

3

Ho fatto un progetto simile. Devi usare un controller immagine. Sopra il tuo controller immagine devi aggiungere un altro controller immagine (solo perché questa è la tua area di ritaglio) sopra la parte vuota/vuota di ImageController è dove dovrai prendere. (Così si dovrebbe avere un'immagine con 320x480 dimensioni e 320x385 vuota in esso.)

UIImage *image=theimageView.image; 
CGSize newSize; 
newSize.width=320; 
newSize.height=385; 
UIGraphicsBeginImageContext(newSize); 

//x=0 (because widhth : 320) y=0 (aboveImageController's empty part's start) 
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

CGImageRef imageRef = CGImageCreateWithImageInRect([newImage CGImage], rect); 
UIImage *img = [UIImage imageWithCGImage:imageRef]; 
CGImageRelease(imageRef); 
0

È possibile utilizzare questo

UIImage *image1 = [self resizeImage:image width:320 height:385]; 


-(UIImage *)resizeImage:(UIImage *)image width:(int)wdth height:(int)hght{ 
    int w = image.size.width; 
    int h = image.size.height; 
    CGImageRef imageRef = [image CGImage]; 
    int width, height; 
    int destWidth = wdth; 
    int destHeight = hght; 
    if(w > h){ 
     width = destWidth; 
     height = h*destWidth/w; 
    } 
    else { 
     height = destHeight; 
     width = w*destHeight/h; 
    } 
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
    CGContextRef bitmap; 
    bitmap = CGBitmapContextCreate(NULL, width, height, 8, 4 * width, colorSpace, kCGImageAlphaPremultipliedFirst); 

    if (image.imageOrientation == UIImageOrientationLeft) { 

     CGContextRotateCTM (bitmap, M_PI/2); 
     CGContextTranslateCTM (bitmap, 0, -height); 

    } else if (image.imageOrientation == UIImageOrientationRight) { 

     CGContextRotateCTM (bitmap, -M_PI/2); 
     CGContextTranslateCTM (bitmap, -width, 0); 

    } 
    else if (image.imageOrientation == UIImageOrientationUp) { 

    } else if (image.imageOrientation == UIImageOrientationDown) { 

     CGContextTranslateCTM (bitmap, width,height); 
     CGContextRotateCTM (bitmap, -M_PI); 
    } 

    CGContextDrawImage(bitmap, CGRectMake(0, 0, width, height), imageRef); 
    CGImageRef ref = CGBitmapContextCreateImage(bitmap); 
    UIImage *result = [UIImage imageWithCGImage:ref]; 
    CGContextRelease(bitmap); 
    CGImageRelease(ref); 

    return result; 

} 
2

Partenza GKImagePicker

https://github.com/gekitz/GKImagePicker

Il progetto di esempio ha solo iphone e supporta solo album di foto, ma sono stato abbastanza facilmente in grado di estenderlo per includere ipad e camera. L'ho usato per creare una visualizzazione personalizzata del ritaglio che fosse un rettangolo arrotondato di qualsiasi dimensione.

+0

Come ti sei liberato della schermata originale "riprendi/usa" Apple quando usi GKImagePicker? In questo momento, se faccio una foto con la fotocamera, questa viene visualizzata per prima, e se premo 'uso', la versione di ritaglio di GKImagePicker di quello schermo appare subito dopo. Voglio solo la schermata GKImagePicker. – Ramsel

+0

@RobertWagstaff, in che modo GKImagePicker ha funzionato con la fotocamera? Puoi ancora impostare il crop rect allo stesso modo o hai appena implementato i tuoi metodi di fotocamera in cui il codice originale non ne aveva? – DelightedD0D

+0

@ DelightedD0D sì, ho implementato i miei metodi della fotocamera –

Problemi correlati