DavBfr / dart_barcode

Barcode generation library
https://pub.dev/packages/barcode
Apache License 2.0
132 stars 41 forks source link

Barcode image to Base64 Image? #27

Closed NiroopNife closed 3 years ago

NiroopNife commented 3 years ago

SInce i needed to store the genereated barcode image into the database, can I get to know how to convert a barcode image to a base64 image?

DavBfr commented 3 years ago

Why would you need to store a barcode image into a database?

You can save it as a PNG or SVG image and convert it to base64.

NiroopNife commented 3 years ago

Yeah thats true but can i know how to convert the SVG image to a base64 image as i did search in SO but couldn't find any leads.

And also by priniting the SVG string which will be got in var svgString = bc.toSvg('Hello World!', width: 200, height: 200); and tried to convert this to base64 by

DrawableRoot svgDrawableRoot = await svg.fromSvgString(svgString, null);
    String temp = svgString.substring(svgString.indexOf('height="')+8);
    int originalHeight = int.parse(temp.substring(0, temp.indexOf('p')));
    temp = svgString.substring(svgString.indexOf('width="')+7);
    int originalWidth = int.parse(temp.substring(0, temp.indexOf('p')));

    double devicePixelRatio = MediaQuery.of(context).devicePixelRatio;

    double width = originalHeight * devicePixelRatio; // where 32 is your SVG's original width
    double height = originalWidth * devicePixelRatio; // same thing

    ui.Picture picture = svgDrawableRoot.toPicture(size: Size(width, height));

    ui.Image image = await picture.toImage(width.toInt(), height.toInt());
    ByteData bytes = await image.toByteData(format: ui.ImageByteFormat.png);

    Bitmap bitmap = await Bitmap.fromHeadless(width.toInt(), height.toInt(),
        bytes.buffer.asUint8List()
    );
print(bitmap)

And so getting an error as

[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: FormatException: Invalid radix-10 number (at character 1)
E/flutter ( 3214): ewBox="0.00000 0.00000 200.00000 80.00000" xmlns="htt
E/flutter ( 3214): ^
E/flutter ( 3214): 
E/flutter ( 3214): #0      int._throwFormatException (dart:core-patch/integers_patch.dart:131:5)
E/flutter ( 3214): #1      int._parseRadix (dart:core-patch/integers_patch.dart:157:16)
E/flutter ( 3214): #2      int._parse (dart:core-patch/integers_patch.dart:100:12)
E/flutter ( 3214): #3      int.parse (dart:core-patch/integers_patch.dart:63:12)
E/flutter ( 3214): #4      _DelState.getBarcodeImage (package:postman/del.dart:36:30)
E/flutter ( 3214): <asynchronous suspension>
E/flutter ( 3214): #5      _DelState.initState (package:postman/del.dart:25:5)
E/flutter ( 3214): #6      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4765:58)
E/flutter ( 3214): #7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter ( 3214): #8      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 3214): #9      Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 3214): #10     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6118:14)
E/flutter ( 3214): #11     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 3214): #12     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 3214): #13     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4652:16)
E/flutter ( 3214): #14     Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5)
E/flutter ( 3214): #15     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4606:5)
E/flutter ( 3214): #16     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter ( 3214): #17     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 3214): #18     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 3214): #19     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6118:14)
E/flutter ( 3214): #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 3214): #21     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 3214): #22     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6118:14)
E/flutter ( 3214): #23     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 3214): #24     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 3214): #25     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4652:16)
E/flutter ( 3214): #26     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4800:11)
E/flutter ( 3214): #27     Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5)
E/flutter ( 3214): #28     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4606:5)
E/flutter ( 3214): #29     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4791:11)
E/flutter ( 3214): #30     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter ( 3214): #31     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 3214): #32     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 3214): #33     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6118:14)
E/flutter ( 3214): #34     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 3214): #35     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 3214): #36     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6118:14)
E/flutter ( 3214): #37     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 3214): #38     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter ( 3214): #39     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4652:16)
E/flutter ( 3214): #40     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4800:11)
E/flutter ( 3214): #41     Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5)
E/flutter ( 3214): #42     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4606:5)
E/flutter ( 3214): #43     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4791:11)
E/flutter ( 3214): #44     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter ( 3214): #45     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter ( 3214): #46     E