Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. why canvas toDataURL/save method NOT WORK correctly in android?
Forum Updated to NodeBB v4.3 + New Features

why canvas toDataURL/save method NOT WORK correctly in android?

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
2 Posts 1 Posters 417 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    tuduweb
    wrote on last edited by
    #1

    CANVAS base64data must less than 1018 ?

    My qml code:

    Canvas {
        id: canvas
        width: 150
        height: 150
    
        onPaint: {
            var ctx = getContext("2d");
    
            ctx.fillStyle = Qt.rgba(1, 0, 0, 1);
            ctx.fillRect(0, 0, width, height);
        }
    }
    
    Button{
        text: "save"
        onClicked: {
            console.log(canvas.toDataURL())
            var res = canvas.save(localUrl + "/savedImage.png")
            //....
        }
    }
    

    the param localUrlset android getExternalFilesDir in android or QDir::currentPath() in win10

    when i click the BUTTON in win10, my program run normally, image is saved to my computer, and the file is correct. file size is 1.05kb.

    Application output tab output:

    base64 length: 1475

    qml: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD7klEQVR4nO3UQQ0AIBDAMMC/58MCP7KkVbDX9syaBRBwfgcAvDIsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CADMMCMgwLyDAsIMOwgAzDAjIMC8gwLCDDsIAMwwIyDAvIMCwgw7CAjAvoKgVVifzkRQAAAABJRU5ErkJggg==
    

    BUT , when my program run in android, something go wrong, image file is not correct. file size is 0kb

    Application output tab output:
    base64 length: 1018

    D libOnlineBoard_arm64-v8a.so: qml: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcIAAAHCCAYAAAB8GMlFAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGtUlEQVR4nO3VMQEAIAzAMMC/5yFjRxMF/XpnzhwAiHrbAQCwyQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKMEIA0IwQgzQgBSDNCANKM
    

    In this case in android, I change my code many times, i find program run well when the CANVAS base64data less than 1018, and the max length is 1018.
    when the length over than 1018, go wrong.

    how can i fix this problem?
    thx!

    1 Reply Last reply
    0
    • T Offline
      T Offline
      tuduweb
      wrote on last edited by
      #2

      qt 5.15.2
      android 10 arm64
      android 8.1 x86

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved