Próbuję zapisać UIImage
do, NSData
a następnie przeczytać NSData
powrót do nowego UIImage
w Swift. Aby przekonwertować UIImage
do NSData
Używam następujący kod:
let imageData: NSData = UIImagePNGRepresentation(myImage)
Jak przekonwertować imageData
(tj. NSData
) Z powrotem na nowy UIImage
?
let imagePt = UIImage(data: caminhodaImagem)
wystarczy?Użyj
imageWithData:
metody, która zostanie przetłumaczona na Swift jakoUIImage(data:)
źródło
Teraz w Swift 4.2 możesz użyć
pngData()
nowej metody instancji,UIImage
aby pobrać dane z obrazuźródło
Detale
Rozwiązanie 1
Rozwiązanie 2.1
Zastosowanie rozwiązania 2.1
Rozwiązanie 2.2
Zastosowanie rozwiązania 2.2
Obraz reprezentujący zajmie dużo zasobów procesora i pamięci. Tak więc w tym przypadku lepiej przestrzegać kilku zasad:
- nie uruchamiaj jpegData (CompressionQuality :) na głównej kolejce
- uruchamiaj jednocześnie tylko jeden plik jpegData (compressQuality :)
Źle:
Dobrze:
Spinki do mankietów
źródło
Aby zapisać jako dane:
W StoryBoard, jeśli chcesz zapisać dane „obrazu” w imageView w MainStoryBoard, będą działać następujące kody.
Aby załadować „obraz” do imageView: spójrz na wykrzyknik „!”, „?” dokładnie, czy to jest to samo, co ten.
Typ „NSData” jest automatycznie konwertowany na typ „Data” podczas tego procesu.
źródło
W celu bezpiecznego wykonania kodu użyj
if-let
bloku z,Data
aby zapobiec awariom aplikacji, ponieważ funkcjaUIImagePNGRepresentation
zwraca wartość opcjonalną.Ogólne operacje na obrazach (zarówno png, jak i jpg):
Korzystając z rozszerzenia:
źródło
Obraz do danych: -
Dane do obrazu: -
źródło
Szybki 5
niech obraz, który tworzysz jako UIImage, będzie obrazem
źródło