¿Cómo recortar la parte central de la imagen grande en iOS? -- ios campo con objective-c campo con image camp Relacionados El problema

How to crop center part of large image in iOS?


3
vote

problema

Español

Cuando se recorta una imagen desde el centro, la imagen de cultivo tomará la relación de aspecto de la imagen de origen, pero de acuerdo con mi requisito, la relación de aspecto se cambiará con un nuevo tamaño de cultivo.

Quiero obtener parte de la imagen exacta de la imagen con una nueva relación de aspecto. Por ejemplo, una imagen grande es de tamaño (320 * 480), entonces quiero recortar la parte central de la imagen del tamaño (100,100) y la relación de aspecto también será 100 * 100, no se requiere una parte blanca exterior o negra y la calidad de la imagen será alta.

Función de recorte:

  - (UIImage *)cropImage:(UIImage*)image andFrame:(CGRect)rect {      //Note : rec is nothing but the image frame which u want to crop exactly.      rect = CGRectMake(rect.origin.x*image.scale,                       rect.origin.y*image.scale,                       rect.size.width*image.scale,                       rect.size.height*image.scale);      CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], rect);     UIImage *result = [UIImage imageWithCGImage:imageRef                                           scale:image.scale                                     orientation:image.imageOrientation];     CGImageRelease(imageRef);     return result; }   

por favor ayúdame.

Original en ingles

When a image is cropped from the center then crop image will take the aspect ratio of source image,But According to my requirement, aspect ratio will be change with new crop size.

I want to get exact center part of image with new aspect ratio.For example a large image is of size (320*480) then I want to crop center part of image of size (100,100) and aspect ratio will also be 100*100 ,No outer white or black part is required and image quality will be high.

Cropping function :

- (UIImage *)cropImage:(UIImage*)image andFrame:(CGRect)rect {      //Note : rec is nothing but the image frame which u want to crop exactly.      rect = CGRectMake(rect.origin.x*image.scale,                       rect.origin.y*image.scale,                       rect.size.width*image.scale,                       rect.size.height*image.scale);      CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], rect);     UIImage *result = [UIImage imageWithCGImage:imageRef                                           scale:image.scale                                     orientation:image.imageOrientation];     CGImageRelease(imageRef);     return result; } 

Please help me.

        
     
     

Lista de respuestas

12
 
vote
vote
La mejor respuesta
 

Esto podría ejecutar

  - (UIImage *)imageByCroppingImage:(UIImage *)image toSize:(CGSize)size {     // not equivalent to image.size (which depends on the imageOrientation)!     double refWidth = CGImageGetWidth(image.CGImage);     double refHeight = CGImageGetHeight(image.CGImage);      double x = (refWidth - size.width) / 2.0;     double y = (refHeight - size.height) / 2.0;      CGRect cropRect = CGRectMake(x, y, size.height, size.width);     CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropRect);      UIImage *cropped = [UIImage imageWithCGImage:imageRef scale:0.0 orientation:self.imageOrientation];     CGImageRelease(imageRef);      return cropped; }   
 

This might run

- (UIImage *)imageByCroppingImage:(UIImage *)image toSize:(CGSize)size {     // not equivalent to image.size (which depends on the imageOrientation)!     double refWidth = CGImageGetWidth(image.CGImage);     double refHeight = CGImageGetHeight(image.CGImage);      double x = (refWidth - size.width) / 2.0;     double y = (refHeight - size.height) / 2.0;      CGRect cropRect = CGRectMake(x, y, size.height, size.width);     CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropRect);      UIImage *cropped = [UIImage imageWithCGImage:imageRef scale:0.0 orientation:self.imageOrientation];     CGImageRelease(imageRef);      return cropped; } 
 
 
 
 
1
 
vote
  var imageView = UIImageView()  // height and width values corresponds to rectangle height and width  imageView  = UIImageView(frame: CGRectMake(0, 0, width, height )) imageView.image = UIImage(named: "Your Image Name")  // by   setting   content  mode  to  .ScaleAspectFill   image centrally  fill  in   imageView. image   might appear beyond  image frame.  imageView.contentMode = .ScaleAspectFill   // by   setting .clipsToBouds to true,  image set to image frame.  imageView.clipsToBounds = true view.addSubview(imageView)   
 
var imageView = UIImageView()  // height and width values corresponds to rectangle height and width  imageView  = UIImageView(frame: CGRectMake(0, 0, width, height )) imageView.image = UIImage(named: "Your Image Name")  // by   setting   content  mode  to  .ScaleAspectFill   image centrally  fill  in   imageView. image   might appear beyond  image frame.  imageView.contentMode = .ScaleAspectFill   // by   setting .clipsToBouds to true,  image set to image frame.  imageView.clipsToBounds = true view.addSubview(imageView) 
 
 
 
 
1
 
vote

// trabajar este código

       -(UIImage *)croppedImage     {     UIImage *myImage = UIGraphicsGetImageFromCurrentImageContext();     UIGraphicsEndImageContext();     [self.bezierPath closePath];     CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 0.0);     _b_image = self.bg_imageview.image;     CGSize imageSize = _b_image.size;     CGRect imageRect = CGRectMake(0, 0, imageSize.width, imageSize.height);     UIGraphicsBeginImageContextWithOptions(imageSize, NO, [[UIScreen mainScreen] scale]);     [self.bezierPath addClip];     [_b_image drawInRect:imageRect];      UIImage *croppedImage = UIGraphicsGetImageFromCurrentImageContext();     UIGraphicsEndImageContext(); return croppedImage;   

}

 

// Work this code

     -(UIImage *)croppedImage     {     UIImage *myImage = UIGraphicsGetImageFromCurrentImageContext();     UIGraphicsEndImageContext();     [self.bezierPath closePath];     CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 0.0);     _b_image = self.bg_imageview.image;     CGSize imageSize = _b_image.size;     CGRect imageRect = CGRectMake(0, 0, imageSize.width, imageSize.height);     UIGraphicsBeginImageContextWithOptions(imageSize, NO, [[UIScreen mainScreen] scale]);     [self.bezierPath addClip];     [_b_image drawInRect:imageRect];      UIImage *croppedImage = UIGraphicsGetImageFromCurrentImageContext();     UIGraphicsEndImageContext(); return croppedImage; 

}

 
 
1
 
vote

Calcular cultivo Rect de la imagen

  float imgHeight = 100.0f; //Any according to requirement float imgWidth = 100.0f; //Any according to requirement CGRect cropRect = CGRectMake((largeImage.size.width/2)-(imgWidth/2),largeImage.size.height/2)-(imgHeight/2),imgWidth,imgHeight);   

Ahora recórtalo

  String uid = FirebaseAuth.getInstance().getCurrentUser().getUid(); UserModel userModel = new UserModel("john@email,com", "John"); DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference usersRef = rootRef.child("users"); usersRef.child(uid).setValue(userModel); 0  
 

Calculate crop rect from image

float imgHeight = 100.0f; //Any according to requirement float imgWidth = 100.0f; //Any according to requirement CGRect cropRect = CGRectMake((largeImage.size.width/2)-(imgWidth/2),largeImage.size.height/2)-(imgHeight/2),imgWidth,imgHeight); 

Now crop it

CGImageRef imageRef = CGImageCreateWithImageInRect([largeImage CGImage], cropRect); // or use the UIImage wherever you like UIImage *croppedImg = [UIImage imageWithCGImage:imageRef]];  CGImageRelease(imageRef);  
 
 
   
   

Relacionados problema

0  ¿Cómo puedo capturar la respuesta del servidor JSON mientras carga la imagen usando AJAX?  ( How can i catch server json response while uploading image using ajax ) 
Tengo un formulario que se carga a través de jquery desde el archivo de plantilla externo: $('#imguploadform').html(' ').load('{% url upload_form %}')...

49  Obtener una vista previa JPEG de un PDF en Windows?  ( Get a preview jpeg of a pdf on windows ) 
Tengo una aplicación multiplataforma (Python) que necesita generar una vista previa de JPEG de la primera página de un PDF. en la Mac estoy desplazando SIP...

18  Biblioteca de tamaño de imagen C / C ++ más rápida [cerrada]  ( Fastest c c image resizing library ) 
cerrado . Esta pregunta es basada en opinión . Actualmente no está aceptando respuestas. ¿...

1  JQUERY MOETERER / MOUSE DEJE IMAGEN Cambio  ( Jquery mouseenter mouse leave image swap ) 
Entonces escribí este pequeño código para probar una nueva forma de hacer un intercambio de imágenes para fines de precarga y estoy teniendo un poco de proble...

3  Miniatura de la imagen en un cuadro de lista de formas de WinForms  ( Image thumbnail in a winforms listbox ) 
Estoy tratando de mostrar una miniatura dentro de un cuadro de lista en una aplicación de formulario de Windows. He leído y he visto todo tipo de sugerencias,...

26  Imagen de Google Maps?  ( Google maps image ) 
¿Hay alguna manera de capturar la imagen de un mapa de Google? No puedo usar el mapa estático porque tengo mis propias polilíneas en el mapa y las quiero en l...

1  ¿Cómo puedo mostrar imágenes almacenadas localmente en un sitio web de Internet?  ( How can i display locally stored images on an internet website ) 
Me gustaría mostrar imágenes en mi sitio web que se almacenan en un sistema de archivos local de visitantes. Suponiendo que tengo la ubicación de la imagen...

0  ¿Qué formato de imagen es rentable en términos de operación de red para iPhone?  ( Which image format is cost effective in terms of network operation for iphone ) 
Quiero mostrar una imagen de miniaturas en un cell de tableViewController , esta imagen de miniaturas se encuentra en algún lugar remoto (la URL de la dire...

-2  añadiendo imagen en un panel  ( Adding image on a panel ) 
uhhmm. He estado encontrando formas de agregar imágenes (objeto de imagen) en un panel. Básicamente, lo que quiero hacer es crear una página: un panel con obj...

32  Localización de texto dentro de la imagen  ( Locating text within image ) 
Actualmente estoy trabajando en un proyecto y mi objetivo es localizar texto en una imagen. OCR'ing el texto no es mi intención todavía. Quiero obtener básica...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos