Как создать TIFF на iPad

Я пытаюсь создать изображение TIFF из UIImage . Я заглянул в документы Apple, но не мог найти никакой информации.

Может ли кто-нибудь помочь мне и объяснить, как создать образ TIFF на iPad?

4 Solutions collect form web for “Как создать TIFF на iPad”

Мне кажется, что ImageMagick – это слишком много, чтобы писать тиффы. Почему бы не создать libtiff ? iOS поддерживается, и именно это большинство программных пакетов используют для написания tiff (включая ImageMagick).

Вы даже можете использовать файл libtiff.a из ссылки ImageMagick выше. Просто установите заголовки lib и tiff в свой проект. РЕДАКТИРОВАТЬ:

Вот хороший учебник, показывающий вам, как написать tiff после установки libtiff. Во второй части учебника показано, как управлять сжатием.

Я чувствую, что этот ответ немного запоздал, но если кто-то еще захочет узнать, как это сделать, я думаю, вы найдете следующее:

 NSMutableData *mData = [NSMutableData dataWithCapacity:SOME_BIG_NUMBER]; CGImageDestinationRef myImageDest = CGImageDestinationCreateWithData((__bridge CFMutableDataRef)(mData), kUTTypeTIFF, 1, NULL); CGImageDestinationAddImage(myImageDest,image.CGImage, NULL); CGImageDestinationFinalize(myImageDest); CFRelease(myImageDest); 

Затем mData будет хранить кодировку NSData файла TIFF, которую вы затем можете сохранить на диск, загрузить на сервер, что угодно …

Возможно, вам придется включить MobileCoreServices и рамки ImageIO …

Павел

ImageMagick был скомпилирован для iOS и позволяет обрабатывать изображения TIFF. Инструкции можно найти здесь:

http://www.imagemagick.org/script/binary-releases.php?ImageMagick=34s6srn5bll7310o0qo6db5hb3#iOS

Существует также пример проекта, который иллюстрирует, как интегрировать эту функциональность в ваше приложение. Следует отметить, что включение этой библиотеки занимает несколько шагов – и инструкции включены в ссылку выше.

НАСТРОЙКА ПРОЕКТА ДЛЯ IMAGEMAGICK

Сначала загрузите последнюю версию (с первой ссылки выше) с помощью libs в названии. Сюда входят предварительно скомпилированные версии необходимых фреймворков. Распакуйте содержимое этого файла. Затем щелкните правой кнопкой мыши « Рамки» в ваших проектах iOS и выберите вариант « Добавить файлы» . Добавьте каждый из файлов с расширением .a. У вас должно быть что-то похожее на это:

Рамочная группа с необходимыми платформами ImageMagick

Затем вам нужно будет добавить правильные пути поиска заголовков. Перейдите в Настройки сборки для своего проекта и найдите пути поиска заголовков . Выберите это и добавьте новый путь поиска, соответствующий тому, где находится каталог include (из загрузки). Не добавляйте это только для отладки или выпуска, но для всех. Теперь у вас должно получиться следующее:

Пути поиска заголовков для ImageMagick

Теперь вы должны иметь возможность включать и использовать код из рамки ImageMagick.

Просто используйте следующий код, и вы получили .tiff image . Вы должны добавить ImageIO и MobileCoreServices Framework в свой проект.

 #import <ImageIO/ImageIO.h> #import <MobileCoreServices/UTCoreTypes.h> - (void)viewDidLoad { [super viewDidLoad]; [self convertImageIntoTIFF]; } -(void)convertImageIntoTIFF{ UIImage *img = [UIImage imageNamed:@"image.png"]; float compression = 1.0; // Lossless compression if available. int orientation = 1; // Origin is at top, left. CFStringRef myKeys[3]; CFTypeRef myValues[3]; CFDictionaryRef myOptions = NULL; myKeys[0] = kCGImagePropertyOrientation; myValues[0] = CFNumberCreate(NULL, kCFNumberIntType, &orientation); myKeys[1] = kCGImagePropertyHasAlpha; myValues[1] = kCFBooleanTrue; myKeys[2] = kCGImageDestinationLossyCompressionQuality; myValues[2] = CFNumberCreate(NULL, kCFNumberFloatType, &compression); myOptions = CFDictionaryCreate( NULL, (const void **)myKeys, (const void **)myValues, 3, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder NSLog(@"documentsDirectory %@", documentsDirectory); NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"image.tiff"]; [self writeCGImage:img.CGImage toURL:[NSURL fileURLWithPath:filePath] withType:kUTTypeTIFF andOptions:myOptions]; } - (void) writeCGImage: (CGImageRef) image toURL: (NSURL*) url withType: (CFStringRef) imageType andOptions: (CFDictionaryRef) options { CGImageDestinationRef myImageDest = CGImageDestinationCreateWithURL((CFURLRef)url, imageType, 1, nil); CGImageDestinationAddImage(myImageDest, image, options); CGImageDestinationFinalize(myImageDest); CFRelease(myImageDest); } 

Для получения дополнительной информации вы можете загрузить этот DemoCode .

Надеюсь, это то, что вы ищете. 🙂

  • Загрузка UIImage и удаление исходного файла
  • Предоставление CGPDFPage в UIImage
  • переопределение UIImage (названный:)
  • Определение файла, который будет использовать UIImage (Swift)
  • iPhone iOS сохраняет данные, полученные из UIImageJPEGRepresentation (), не срабатывает второй раз: ImageIO: CGImageRead_mapData 'open' failed
  • Загрузите изображение в UIImage из пути к файлу в библиотеку ресурсов
  • Как изменить размер изображения в Swift?
  • изменение размера UIImage программно не работает
  • Создание UIImage из UIColor для использования в качестве фонового изображения для UIButton
  • Как правильно заменить изображение в UIImageView в UIScrollView на iOS
  • Неверный размер изображений в TableView
  • Interesting Posts

    От объекта к json

    swift PUT API Вызов отсутствующих параметров

    Есть ли приложение вроде «Codea», но для MonoTouch?

    Передать элемент массива ячеек в другой контроллер представления

    Как обнаружить нажатие на маленькие ближайшие кнопки в iOS?

    Установить масштаб UIScrollView по умолчанию

    get "Неопределенные символы для архитектуры i386:" пытается получить константы

    WKWebView загружает ресурсы из локальной папки документа

    Как показать кнопку в центре панели инструментов?

    Добавление программ программно в Objective-C

    UITextView в UITableViewCell sizeToFit работает не так, как ожидалось

    Действие жизненного цикла приложения iOS 4 службы стандартного определения местоположения работает в фоновом режиме

    IO напрямую воспроизводят исходное аудио из UDP-потока (NSData)

    Могу ли я полагаться на правильность часов устройства iOS?

    Как использовать подписку CKS в расширении сообщений iOS 10?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.