Görüntüleri kodlamak için Base64 kullanan bir Android uygulaması var ve kodlanmış diziler bir sunucuda depolanıyor. Şimdi aynı uygulama için bir iOS istemcisi yapıyorum ve aynı şekilde görüntüleri kodlamak için mücadele ediyorum android sonunda kodlanmış görüntüler Swift iOS içinde çözülecek ama Swift kodlanmış resimler Android içinde decode DEĞİL, ya da burada http://www.freeformatter.com/base64-encoder.html (Ortaya çıkan dosya Android'de Swift'de kodlamada Base64 kodlaması Android'de kod çözülmez
iOS
yılında deşifre OLACAK iOS kodlanmış geçerli bir resim)Görüntüler değil, ben kodlamak ve
public static String encodeBitmap(Bitmap bitmap) {
Bitmap immagex = bitmap;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
immagex.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT);
return imageEncoded;
}
public static Bitmap decodeBitmap(String encodedString) {
byte[] decodedByte = Base64.decode(encodedString, Base64.DEFAULT);
Bitmap b = BitmapFactory.decodeByteArray(decodedByte, 0,
decodedByte.length);
return b;
}
deşifre aşağıdaki ve aşağıdaki kullanıyorum iOS tarafı
static func decodeImage(str: String) -> UIImage?{
if let decodedData = NSData(base64EncodedString: str, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters){
var iconValue:UIImage? = UIImage(data: decodedData)
return iconValue
}
return nil
}
static func encodeImage(image: UIImage) -> String{
var imageData = UIImagePNGRepresentation(image)
let base64 = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding76CharacterLineLength)
return base64
}
} Ben
Örnek çalışmasını sağlamak için müşteri ya değiştirmeye hazırım
: o http://pastebin.com/D41Ldjis
Ve üzere kodlar Android'te örnek https://pbs.twimg.com/profile_images/522909800191901697/FHCGSQg0.png
için bu görseli almak iOS'ta http://pastebin.com/fEUZSJvF
iOS'un çok daha büyük bir karakter sayısı var
Ben hızlı gösterileri ile bu 'imageData.base64EncodedStringWithOptions (.allZeros görsem örnek)' – tyczj
Ben dize fark çünkü çok i 76 çalıştı çalıştık @tyczj android tarafından üretilen her 76th karakter –
yeni satırlar bir örnek ekle, veri hex dökümü ve Base64 dizesi. Onları görsel olarak karşılaştırdınız mı? Uzunluklar aynı mı? Aktarımda URL olarak kodlanmışlar mı? – zaph