Строка base64 генерируется по-разному между swift и c # - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь сгенерировать строку base64 из одного и того же изображения в swift и c #, получается, что строка base64 различна, но похожа, предполагается, что строка base64 должна быть такой же, если она генерируется из одного и того же изображения?

Строка base64 приводит к быстрому
/ 9j / 4AAQSkZJRgABAQAASABIAAD / ..................

Строка base64 приводит к c #
/9j / 4AAQSkZJRgABAQEAYABgAAD / ..................

И я доказал, что один из swift является недопустимой строкой base64, что один из c # является допустимым. это какая-то проблема на моем быстром сценарии?


// swift

let image : UIImage = UIImage(named:"a.jpg")!
var strBase64 = image.jpegData(compressionQuality: 1)?.base64EncodedString() ?? ""


// c #

private string GenString()
{
    byte[] bytes = GetFileByteArray(@"C:\temp\a.jpg");

    return Convert.ToBase64String(bytes);
}

private byte[] GetFileByteArray(string filename)
{
     FileStream oFileStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
     byte[] FileByteArrayData = new byte[oFileStream.Length];            
     oFileStream.Read(FileByteArrayData, 0, System.Convert.ToInt32(oFileStream.Length));
     oFileStream.Close();

     return FileByteArrayData;
}

1 Ответ

0 голосов
/ 04 октября 2019

Попробуйте использовать приведенный ниже код для преобразования изображения в строку Base64.

    func ImageToBase64String(format: ImageType, image:UIImage) -> String? {
        var imageBase64Data: Data?
        switch format {
        case .png: imageBase64Data = UIImagePNGRepresentation(image)
        case .jpeg(let compression): imageBase64Data = UIImageJPEGRepresentation(image, 
        compression)
       }
          return imageBase64Data?.base64EncodedString()
      }

public enum ImageType {
    case png
    case jpeg(CGFloat)
}

Вызов кода для функции

    let image = UIImage(named:"name of your image")
    let base64String = ImageToBase64String(format: .png, image: image!)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...