Я использую этот код в своем приложении, которое поможет мне отправить изображение.
Тем не менее, у меня есть вид изображения с изображением. У меня нет файла в appbundle, но изображение на моей стороне. Как я могу изменить приведенный ниже код? Может кто-нибудь сказать мне, как я могу преобразовать myimage
в NSData
?
// Attach an image to the email
NSString *path = [[NSBundle mainBundle] pathForResource:@"rainy" ofType:@"jpg"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[picker addAttachmentData:myData mimeType:@"image/jpeg" fileName:@"rainy"];
objective-c
ios
ipad
cocoa-touch
nsdata
Кристина
источник
источник
Ответы:
Попробуйте выполнить одно из следующих действий в зависимости от формата изображения:
Здесь документы .
РЕДАКТИРОВАТЬ:
если вы хотите получить доступ к необработанным байтам, которые составляют UIImage, вы можете использовать этот подход:
Это даст вам низкоуровневое представление изображения RGB пикселей. (Опустите
CFBridgingRelease
бит, если вы не используете ARC).источник
(id)CFBridgingRelease(CGDataProviderCopyData(provider))
чтобы получить право собственности наCDataRef
возвращенныйCGDataProviderCopyData
в ARC.data
будет ли достаточно выпустить релиз или все еще будет утечка памяти.источник
Если у вас есть изображение внутри UIImageView, например, «myImageView», вы можете сделать следующее:
Преобразуйте ваше изображение с помощью UIImageJPEGRepresentation () или UIImagePNGRepresentation (), например так:
Вы также можете поместить этот код в блок GCD и выполнить в другом потоке, показывая UIActivityIndicatorView во время процесса ...
источник
Создать ссылку на изображение ....
отображение изображения в виде изображения ... imagedisplay является ссылкой на изображение:
преобразовать его
NSData
, передавUIImage
ссылку и обеспечить качество сжатия в значениях с плавающей запятой:источник
Решение в Swift 4
источник
cgImage.dataProvider
данные закодированы? Кажется, что он отличается от данныхUIImagePNGRepresentation
иUIImageJPEGRepresentation
потому, что он не может быть использован для создания изображения, как этоUIImage(data: imageData)
.UIImageJPEGRepresentation
обеспечивает. Но я считаю, что это решение сохраняет исходный формат кодирования, в котором было изображение, и не перекодирует его.Используйте блок if-let с Data для предотвращения сбоя приложения и безопасного выполнения кода, так как функция UIImagePNGRepresentation возвращает необязательное значение.
Общие операции с изображениями (например, png и jpg):
Используя расширение:
источник
источник