Изменить размер UIImage для редактирования и сохранить в высоком разрешении? - PullRequest
0 голосов
/ 31 марта 2012

Есть ли способ загрузить изображение из библиотеки или взять новое, изменить его размер до меньшего размера, чтобы можно было отредактировать его, а затем сохранить в исходном размере?Я борюсь с этим и не могу заставить его работать.У меня есть настройки кода изменения размера, как это:

firstImage = [firstImage resizedImageWithContentMode:UIViewContentModeScaleAspectFit bounds:CGSizeMake(960, 640) interpolationQuality:kCGInterpolationHigh];

, а затем у меня есть UIImageView:

[finalImage setFrame:CGRectMake(10, 100, 300, 232)];
 finalImage.image = firstImage;

, если я устанавливаю CGSizeMake в исходном размере изображения, это оченьмедленный процесс.В других приложениях я видел, что они работают с меньшим изображением, и процесс редактирования довольно быстрый даже для эффектов.Какой подход к этому?

1 Ответ

1 голос
/ 31 марта 2012

Вы можете обратиться к Демо Move and Scale .Это пользовательский элемент управления, который реализует перемещение, масштабирование и обрезку изображения, которые могут быть вам действительно полезны.

Также это самый простой код для масштабирования изображений до заданного размера.См. Здесь: Изменение размера / масштаба изображения

Вы можете обратиться к его коду здесь

//  UIImage+Scale.h

@interface UIImage (scale)

-(UIImage*)scaleToSize:(CGSize)size;

@end

Реализация UIImage Scale Категория с интерфейсом вдавайте напишем код для метода, который будет добавлен в класс UIImage.

//  UIImage+Scale.h

#import "UIImage+Scale.h"

@implementation UIImage (scale)

-(UIImage*)scaleToSize:(CGSize)size
{
  // Create a bitmap graphics context
  // This will also set it as the current context
  UIGraphicsBeginImageContext(size);

  // Draw the scaled image in the current context
  [self drawInRect:CGRectMake(0, 0, size.width, size.height)];

  // Create a new image from current context
  UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();

  // Pop the current context from the stack
  UIGraphicsEndImageContext();

  // Return our new scaled image
  return scaledImage;
}

@end

Использование метода масштабирования UIImage Вызов метода масштабирования, который мы добавили в UIImage, очень прост.как это:

#import "UIImage+Scale.h"

...

// Create an image
UIImage *image = [UIImage imageNamed:@"myImage.png"];

// Scale the image
UIImage *scaledImage = [image scaleToSize:CGSizeMake(25.0f, 35.0f)];

Дайте мне знать, если вам нужна дополнительная помощь.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...