Как изменить разрешение изображения в объективе - PullRequest
5 голосов
/ 08 ноября 2011

Мне нужно изменить разрешение существующего изображения в target-c так же, как в приложении Apple для предварительного просмотра Инструменты-> Настроить размер ...-> Разрешение.

Пожалуйста, сообщите мне возможные решения.

Ответы [ 3 ]

16 голосов
/ 15 ноября 2011

Вот отличный пример, который я использовал - http://weblog.scifihifi.com/2005/06/25/how-to-resize-an-nsimage/

Из этого примера вы можете записать resizedData в файл - и это будет вывод с измененным размером в формате tiff.

ОБНОВЛЕНИЕ:

здесь идет реализация категории NSImage, которая позволяет сохранить экземпляр NSImage с указанным DPI:

@interface NSImage (DPIHelper)
- (void) saveAsImageType: (NSBitmapImageFileType) imageType withDPI: (CGFloat) dpiValue atPath: (NSString *) filePath;
@end

@implementation NSImage (DPIHelper)


- (void) saveAsImageType: (NSBitmapImageFileType) imageType withDPI: (CGFloat) dpiValue atPath: (NSString *) filePath
{
  NSBitmapImageRep *rep = [[self representations] objectAtIndex: 0];

  NSSize pointsSize = rep.size;
  NSSize pixelSize = NSMakeSize(rep.pixelsWide, rep.pixelsHigh);

  CGFloat currentDPI = ceilf((72.0f * pixelSize.width)/pointsSize.width);
  NSLog(@"current DPI %f", currentDPI);

  NSSize updatedPointsSize = pointsSize;

  updatedPointsSize.width = ceilf((72.0f * pixelSize.width)/dpiValue);
  updatedPointsSize.height = ceilf((72.0f * pixelSize.height)/dpiValue);

  [rep setSize:updatedPointsSize];

  NSData *data = [rep representationUsingType: imageType properties: nil];
  [data writeToFile: filePath atomically: NO];

}

@end

Вы можете использовать это так:

NSImage *theImage2 = [NSImage imageNamed:@"image.jpg"];
[theImage2 saveAsImageType:NSJPEGFileType withDPI: 36.0f atPath: @"/Users/<user-name>/image-updated.jpg"];
0 голосов
/ 17 ноября 2011

Вы не можете превратить ваше изображение в высокое разрешение. Так ты хочешь сжать свое изображение или как?

Если это то, что вы хотите, вы можете использовать: UIImagePNGRepresentation и / или UIImageJPEGRepresentation . Где требуется установить свойство quality . В зависимости от качества ваш размер изображения будет уменьшен.

0 голосов
/ 08 ноября 2011
...