Estou usando esse código no meu aplicativo que me ajudará a enviar uma imagem.
No entanto, eu tenho uma visualização de imagem com uma imagem. Não tenho nenhum arquivo no appbundle, mas tenho a imagem ao meu lado. Como posso alterar o código abaixo? Alguém pode me dizer como posso converter myimage
para 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
Christina
fonte
fonte
Respostas:
Tente um dos seguintes, dependendo do formato da imagem:
Aqui os documentos .
EDITAR:
se você deseja acessar os bytes brutos que compõem o UIImage, você pode usar esta abordagem:
Isso fornecerá a representação de baixo nível dos pixels RGB da imagem. (Omita o
CFBridgingRelease
bit se você não estiver usando o ARC).fonte
(id)CFBridgingRelease(CGDataProviderCopyData(provider))
a propriedade deCDataRef
retornado peloCGDataProviderCopyData
ARC.data
seria suficiente ou se ainda haveria um vazamento de memória.fonte
Se você tem uma imagem dentro de um UIImageView, por exemplo, "myImageView", você pode fazer o seguinte:
Converta sua imagem usando UIImageJPEGRepresentation () ou UIImagePNGRepresentation () como este:
Você também pode colocar esse código dentro de um bloco GCD e executar em outro thread, mostrando um UIActivityIndicatorView durante o processo ...
fonte
Crie a referência da imagem ....
exibindo imagem na visualização de imagem ... imagedisplay é referência do imageview:
converta-o
NSData
passandoUIImage
referência e forneça qualidade de compactação em valores flutuantes:fonte
Solução no Swift 4
fonte
cgImage.dataProvider
dados são codificados? Parece ser diferente dos dadosUIImagePNGRepresentation
eUIImageJPEGRepresentation
porque não pode ser usado para criar uma imagem como essaUIImage(data: imageData)
.UIImageJPEGRepresentation
fornece. Mas acredito que esta solução preserva o formato de codificação original em que a imagem estava e não a recodifica.Use o bloco if-let com Data para impedir a falha do aplicativo e a execução segura do código, pois a função UIImagePNGRepresentation retorna um valor opcional.
Operações genéricas de imagem (como png e jpg):
Usando a extensão:
fonte
fonte