mym0404 / flutter-pencilkit

Flutter plugin for iOS PencilKit
MIT License
47 stars 13 forks source link

base64 error #17

Closed kagangullu closed 6 months ago

kagangullu commented 9 months ago

Description

Hello. I would like to point out an important mistake about the pencil_package you wrote in Flutter. getBase64 function is not working properly. Or I made a mistake :) I run the getBase64 function exactly as in the example. However, when I write the value returned by the method to base64 to Image sites, I get an error. So the code returned is not quite correct.

Steps to reproduce

I write example code

Snack or a link to a repository

https://github.com/mj-studio-library/flutter-pencilkit/

package version

1.0.7

Flutter Doctor Output

Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.16.6, on macOS 13.5.1 22G90 darwin-arm64, locale tr-TR) [✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) [✓] Xcode - develop for iOS and macOS (Xcode 14.3.1) [✓] Chrome - develop for the web [✓] Android Studio (version 2022.3) [✓] VS Code (version 1.85.2) [✓] Connected device (3 available) [✓] Network resources

Build type

None

Device

iOS simulator

Device model

No response

Acknowledgements

Yes

mym0404 commented 9 months ago

Hello, I tested generated base64 data with log function of dart:developer. And it worked.

image

image

base64 string

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/wCCaH7A37Yc0t9+0l8JvDnim+m5e+uLNI70nGMm6h8ufOP9uvzG8Q/8Gsn/AARa1/UDqEXw0vNOz1ista1GKP8A75MzV/Q7RQB/Pl4X/wCDXT/gix4ZuftT/CybUyDkLf6vqMy/THnqMVxHjH/g1n/4JmXOpza78Ernxp8LL2Ziwbwv4guYI1J5+WObzcAdgCK/pEooA/mLs/8Ag3j+PXgglPg5+3B8Y9ChT/VQ3N6t6qD05kjz+VW5P+CNX/BWzS+PDH/BQbxoQv3Re6TBN+eZzmv6aaKAP5kR/wAEkv8AgtiPlH/BQHXMHrnw7a5x/wB/avx/8EV/+CnfihPsfxN/4KA/ECW1f76aVp8Fm5+jrPx+Vf0v0UAfgj+zH/wbyfscfBX4tab+0J8dfEHir46ePNIkE9nqfjvUWv4becHcJYrTAiDA8jfvAPI55r97qKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//0v7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/T/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9T+/iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/1f7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/W/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9f+/iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/0P7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/R/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9L+/iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/0/7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/U/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9X+/iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/1v7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/X/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9D+/iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/0f7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/S/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9P+/iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/1P7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/V/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9b+/iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/1/7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/Q/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9H+/iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/0v7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/Z
kagangullu commented 9 months ago
Ekran Resmi 2024-01-30 12 12 09 Ekran Resmi 2024-01-30 12 12 25 Ekran Resmi 2024-01-30 12 13 29

Please help me.

kagangullu commented 9 months ago

This is my base64 url

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

ffar-dev commented 8 months ago

Hi, i am also facing the same issue Base64 string is not valid Method gives wrong base64 Also tried to save image, it gives unsupported file, which cant be opened from phone

mym0404 commented 7 months ago

Can you submit reproducible sample?

EricPHassey commented 6 months ago

Hate to bring this back up. Was anybody able to figure out saving of Base64 data. On my iPad no matter if I do log or print, still doesn't give me an image when decoding it.

kagangullu commented 6 months ago

Looks like this problem won't be solved ):

EricPHassey commented 6 months ago

Looks like this problem won't be solved ):

I actually wouldn't say that. I believe I've found the problem. In the code it's using "drawing.dataRepresentation().base64EncodedString". However all it's doing is encoding the dataRepresentation() which is an internal custom package to store the drawing information. This makes sense why we take the Base64 code and try to convert it to an image and it fails. I would expect it to fail, and it doesn't make sense why someone earlier was able to convert it to an image.

However, there is an easy way to convert it to a png and either save it (still working on it) or converting that png to a base64 which does work converting it online (already tested that).

The issue I'm not confident on is whether you'd be able to load a base64 png. Unfortunately I don't think that's possible (but still praying I will figure it out as I REALLY need that capability). What you would need to do is save and load the "dataRepresentation()" which is what is currently being done and does work.

EricPHassey commented 6 months ago

For everyone needing a solution, this is what can allow you to get a png output and png base64. In the FLPencilKit swift code just change the save function on line 301 to this:

  func save(url: URL, withBase64Data: Bool) throws -> String? {
    let data = canvasView.drawing.image(from: canvasView.bounds, scale: 1.0).pngData()
      try data?.write(to: url)
    if withBase64Data {
        return data!.base64EncodedString()
    }
    return nil
  }

Essentially you're just swapping out "drawing.dataRepresentation().base64EncodedString()" with "canvasView.drawing.image(from: canvasView.bounds, scale: 1.0).pngData()"

Loading a png seems like a whole another beast. I believe it is possible, but essentially you'd have to loop through the entire png and recreate each pixel as a PKStrokePoint. If anyone is interested in working with me on that, lmk.

mym0404 commented 6 months ago

Looks like this problem won't be solved ):

I actually wouldn't say that. I believe I've found the problem. In the code it's using "drawing.dataRepresentation().base64EncodedString". However all it's doing is encoding the dataRepresentation() which is an internal custom package to store the drawing information. This makes sense why we take the Base64 code and try to convert it to an image and it fails. I would expect it to fail, and it doesn't make sense why someone earlier was able to convert it to an image.

However, there is an easy way to convert it to a png and either save it (still working on it) or converting that png to a base64 which does work converting it online (already tested that).

The issue I'm not confident on is whether you'd be able to load a base64 png. Unfortunately I don't think that's possible (but still praying I will figure it out as I REALLY need that capability). What you would need to do is save and load the "dataRepresentation()" which is what is currently being done and does work.

It is true. I am also curious why PKDrawing binary 64base data could be convert to image directly in some cases. I'll consider adding get base64 image data directly in API.

how about getBase64PngData(...imageOptions): Future

mym0404 commented 6 months ago

Hi folks, @EricPHassey @kagangullu I am glad to announce that from 2.1.0, you can use getBase64PngData and getBase64JpegData. Sorry for previous API architecture led some misunderstanding.

Also, from this version. The selected tool in tool picker is changed on change tool programatically.

If this package was helpful to you, please give us a star.

image

EricPHassey commented 6 months ago

Hi folks, @EricPHassey @kagangullu I am glad to announce that from 2.1.0, you can use getBase64PngData and getBase64JpegData. Sorry for previous API architecture led some misunderstanding.

Also, from this version. The selected tool in tool picker is changed on change tool programatically.

If this package was helpful to you, please give us a star.

image

Awesome work and this is turning into one amazing API. Just stared it too!

However I wonder if we should add in one more function call in swift? Something like saveImage? (or keep the same save function and use an input parameter to determine what we're trying to save?).

For instance it's a lot easier to just save the png/jpg image to file right in swift (shown above in my code). I suppose right now we can get the base64, then decode it in flutter and either save that or keep it in memory. Seems like more processing than needed though.

kagangullu commented 6 months ago

Thank you very much! This looks great!