Estou tentando salvar um UIImage
para NSData
e depois ler as NSData
costas para um novo UIImage
no Swift. Para converter UIImage
para NSData
, estou usando o seguinte código:
let imageData: NSData = UIImagePNGRepresentation(myImage)
Como faço para converter imageData
(ou seja NSData
) de volta para um novo UIImage
?
let imagePt = UIImage(data: caminhodaImagem)
suficiente?Use o
imageWithData:
método, que é traduzido para o Swift comoUIImage(data:)
fonte
Agora, no Swift 4.2, você pode usar o
pngData()
novo método de instânciaUIImage
para obter os dados da imagemfonte
Detalhes
Solução 1
Solução 2.1
Uso da solução 2.1
Solução 2.2
Uso da solução 2.2
A representação da imagem consumirá muitos recursos de CPU e memória. Portanto, neste caso, é melhor seguir várias regras:
- não execute jpegData (pressionQuality :) na fila principal
- execute apenas um jpegData (pressionQuality :) simultaneamente
Errado:
Certo:
Ligações
fonte
Para salvar como dados:
No StoryBoard, se você deseja salvar os dados da "imagem" no imageView do MainStoryBoard, os seguintes códigos funcionarão.
Para carregar "imagem" no imageView: Observe o ponto de exclamação "!", "?" de perto se é exatamente igual a este.
O tipo "NSData" é convertido no tipo "Dados" automaticamente durante esse processo.
fonte
Para uma execução segura do código, use o
if-let
bloco comData
para impedir a falha do aplicativo &, pois a funçãoUIImagePNGRepresentation
retorna um valor opcional.Operações genéricas de imagem (como png e jpg):
Usando a extensão:
fonte
Imagem para Dados: -
Dados para a imagem: -
fonte
Swift 5
deixe a imagem que você criar como UIImage seja imagem
fonte