Czy ktoś wie, jak przekonwertować ciąg UIImage
na Base64, a następnie odwrócić go?
Mam poniższy kod; oryginalny obraz przed kodowaniem jest dobry, ale otrzymuję pusty obraz dopiero po jego zakodowaniu i zdekodowaniu.
NSData *imageData = UIImagePNGRepresentation(viewImage);
NSString *b64EncStr = [self encode: imageData];
NSString *base64String = [self encodeBase64:imageData];
Odpowiedzi:
Szybki
Najpierw musimy mieć NSData obrazu
Swift 2.0> Kodowanie
Swift 2.0> Dekodowanie
Swift 3.0> Dekodowanie
Kodowanie :
Dekodowanie :
Swift 3.0
Cel C
Wersja iOS7>
Możesz użyć
NSData's
base64EncodedStringWithOptions
Kodowanie :
Dekodowanie :
iOS 6.1 i <wersja
Pierwsza opcja : użyj tego linku
encode
idecode
obrazuDodaj klasę Base64 do swojego
project
.Kodowanie :
Dekodowanie :
Inna opcja : użyj QSUtilities dla
encoding
idecoding
źródło
Base64
Klasa śpi wiecznie, zawsze zmuszam całkiem xcode, jeśli używam tego nawet po ustawieniu jakości obrazu na 0,001fdata:image/jpeg;base64,
Metoda rozszerzenia Swift 4.2
XCode 9.1 i Swift 4.0
źródło
SWIFT 3.0, XCODE 8.0
Zamień ciąg na swój adres URL. a testImage jest wylotem ImageView
Mam nadzieję, że pomaga dzięki.
źródło
Szybki 5
Kodowanie
Rozszyfrowanie
Szybki 4
Kodowanie
Rozszyfrowanie
źródło
Szybki iOS8
źródło
Swift 3.0
Aby przekonwertować obraz na ciąg base64
Testowany na placu zabaw
źródło
źródło
W swift 2.0 użyj tego rozszerzenia (podziękowania dla Jonasa Franza)
źródło
W Swift 3.0 i Xcode 8.0
Kodowanie:
Dekodowanie:
źródło
Szybkie rozszerzenie:
źródło
let imageData = UIImagePNGRepresentation(ImageView.image!); let strBase64:String = imageData!.base64EncodedString()
Szybki 4
źródło
Szybki 5.
źródło
Wersja szybka - utwórz base64 dla obrazu
Moim zdaniem niejawnie rozpakowane Opcjonalne w przypadku
UIImagePNGRepresenatation()
nie jest bezpieczne, dlatego polecam użyć rozszerzenia takiego jak poniżej:źródło
źródło
W Swift 3.0
źródło
Wypróbowałem wszystkie rozwiązania, żadne nie działało dla mnie (przy użyciu Swift 4), jest to rozwiązanie, które działało dla mnie, jeśli ktoś w przyszłości napotka ten sam problem.
źródło
Swift 4.2 | Xcode 10
źródło
Swift 5, Xcode 10.
źródło
źródło
W przypadku iOS 7+, Objective-C, oto jak wykonać konwersję zaczynając od adresu URL obrazu:
źródło
Swift 3.0 i Xcode 8.0
źródło
Dla kodu Base64, takiego jak:
Użyj kodu Swift5.0:
źródło
Bardzo dobrze jest zrozumieć, czy zdajesz prefiks, jak powiedział Tyler Sheaffer . Ale z jakiegoś powodu może być potrzebny ten przedrostek opisujący typ MIME na początku ciągu base64, więc sugeruję, aby ten fragment kodu przekazał pewne opcje przed kodowaniem ( Swift 5 ):
źródło