sabar djatmiko
sabar djatmiko

Reputation: 35

flutter convert image File into data:image/jpeg;base64,/9j/4AA

    final bytes = Io.File(file.path).readAsBytesSync();
    String img64 = base64Encode(bytes);
    String img642 = base64.normalize(img64);
    print("img64 => $img642");

i get result iVBORw0KGgoAAAANSUhEUgAAAbAAAAN1CAYAAAAe9K4EAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAACAASURBVHic7L3nk2THma/3ZOYx5au97/EGg5kBBgABEPT+cnd5797dq5Bu6Js+6a9ShBShkEIr3b1LriNBwhAegxmMNz2+x7Tv8ua4zNSHU90zMIQnyN49D2LQ3VXVp6uzqvOXb76/901hrbVkZGRkZGTsMOSf+glkZGRkZGR8ETIBy8jIyMjYkWQClpGRkZGxI8kELCMjIyNjR5IJWEZGRkbGjiQTsIyMjIyMHUkmYBkZGRkZO5JMwDIyMjIydiSZgGVkZGRk7EgyAcvIyMjI2JFkApaRkZGRsSPJBCwjIyMjY0eSCVhGRkZGxo4kE7CMjIyMjB1JJmAZGRkZGTuSTMAyMjIyMnYkmYBlZGRkZOxIMgHLyMjIyNiRZAKWkZGRkbEjyQQsIyMjI2NHkglYRkZGRsaOJBOwjIyMjIwdSSZgGRkZGRk7kkzAMjIyMjJ2JJmAZWRkZGTsSDIBy8jIyMjYkWQClpGRkZGxI8kELCMjIyNjR5IJWEZGRkbGjiQTsIyMjIyMHUkmYBkZGRkZO5JMwDIyMjIydiSZgGVkZGRk7EgyAcvIyMjI2JFkApaRkZGRsSPJBCwjIyMjY0eSCVhGRkZGxo4kE7CMjIyMjB1JJmAZGRkZGTuSTMAy/mhYa//UTyEjI+PfMM6f+glk/NvBWkuSJERRRJIkGGNwHAfP83BdFymz9VJGRsZXRyZgGV8JSaLp9XrU63VWV1dpNJtok1AqlRkdGWFqcpJyuYzjOAgh/tRPNyMj498AmYBlfCnSqEuzubnJnTt3uHz5ChcuXGBldRWEoVqtsnfvXp55+mmOHDnC6Mgovu9nIpaRkfGlyQQs4wtjjKHX7bKyusKZM6e5fOkS9+7dpV6vE8URSgmioEWntUmjtsrS0l0OHzrMvv0HGR0

how to get result with format ?

data:image/jpeg;base64,/9j/4AA .........

i want send this format to send email image.. with html <img src= first result is not show. thanks for your help

update ==>

    final bytes = Uint8List.fromList(file.readAsBytesSync());
    var decodedImage = await decodeImageFromList(file.readAsBytesSync());
    print("height-widht ${decodedImage.height}, ${decodedImage.width}");
    var dataUrl = Uri.dataFromBytes(
      bytes,
      // mimeType: 'application/octet-stream',
    ).toString();
    print("dataUrl $dataUrl");

i got height from print height-widht 885, 432

but when i put result in <img src="" it's only show height my be 20..

enter image description here

my complete code

final directory = await getApplicationDocumentsDirectory(); String filename = '${directory.path}/${orderCtrl.orderDetail.first.id}_${generateRandomString(5)}.png'; final imagePath = await File(filename).create(); await imagePath.writeAsBytes(image); print(filename); File file = File('${filename}');

    final bytes = Uint8List.fromList(file.readAsBytesSync());
    var decodedImage = await decodeImageFromList(file.readAsBytesSync());
    print("height-widht ${decodedImage.height}, ${decodedImage.width}");
    var dataUrl = Uri.dataFromBytes(
      bytes,
      // mimeType: 'application/octet-stream',
    ).toString();
    print("dataUrl $dataUrl");
 
      String img64 = base64UrlEncode(bytes);
      print("img64 => $img64");
      String img642 = base64.normalize(img64);
      print("img642 => $img642");
      String img6421 = "data:image/jpeg;base64,${base64.normalize(img64)}";

      print(img6421);
    Get.dialog(Column(
      children: [
        Expanded(
          child: Container(
            child: SingleChildScrollView(
              child: Container(
                  padding: EdgeInsets.all(10),
                  color: Colors.yellow,
                  child: Image.memory(base64Decode(img642))),
            ),
          ),
        ),
        // Image.file(file),
      ],
    ));

in dialog is show but base64 i just get litte height of picture

Upvotes: 3

Views: 1025

Answers (1)

pmatatias
pmatatias

Reputation: 4404

String img642 = "data:image/jpeg;base64,${base64.normalize(img64)}";

print(img642);

//result 
data:image/jpeg;base64,VBORw0KG...

Upvotes: 0

Related Questions