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. How to save an image from QML Image element?
Forum Updated to NodeBB v4.3 + New Features

How to save an image from QML Image element?

Scheduled Pinned Locked Moved QML and Qt Quick
27 Posts 12 Posters 29.5k Views 1 Watching
  • 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.
  • D Offline
    D Offline
    Djay96
    wrote on last edited by
    #13

    sorry I am using older version (As per requirement ) I appreciate your reply

    1 Reply Last reply
    0
    • D Offline
      D Offline
      DonRico
      wrote on last edited by
      #14

      Hi

      Does anybody have an idea why I can't pass the Image object to the save function. The path comes over nicely but "imageObj" pointer in save() function turns out empty?

      1 Reply Last reply
      0
      • Q Offline
        Q Offline
        qomg
        wrote on last edited by
        #15

        Hi

        I also have an empty pointer. I do not know where to look to solve this problem.

        1 Reply Last reply
        0
        • jeremy_kJ Offline
          jeremy_kJ Offline
          jeremy_k
          wrote on last edited by
          #16

          For Qt 5 and later, "Canvas":http://qt-project.org/doc/qt-5/qml-qtquick-canvas.html has loadImage(url) and save(filename) functions.

          Asking a question about code? http://eel.is/iso-c++/testcase/

          1 Reply Last reply
          0
          • V Offline
            V Offline
            Vincent007
            wrote on last edited by
            #17

            wait for QQuickRenderControl

            1 Reply Last reply
            0
            • Q Offline
              Q Offline
              qomg
              wrote on last edited by
              #18

              I tried to use the Canvas, and also I could not save.
              I'll try again tomorrow ..

              1 Reply Last reply
              0
              • jeremy_kJ Offline
                jeremy_kJ Offline
                jeremy_k
                wrote on last edited by
                #19

                Image loading and saving via Canvas:

                @import QtQuick 2.2
                import QtQuick.Window 2.1

                Window {
                width: imgLoader.sourceSize.width
                height: imgLoader.sourceSize.height
                visible: true
                property string loadUrl: "file://tmp/image.png"
                property string saveUrl: "/tmp/i2.png"

                Canvas {
                    id: root
                    anchors.fill: parent
                    onPaint: {
                        var ctx = getContext("2d")
                        ctx.drawImage(imgLoader, 0, 0)
                    }
                }
                MouseArea {
                    anchors.fill: parent
                    onClicked: {
                        if (root.save(saveUrl)) {
                            console.log("save succeeded")
                        }
                        else {
                            console.log("save failed")
                        }
                    }
                }
                Image {
                    id: imgLoader
                    visible: false
                    source: loadUrl
                }
                

                }@

                Note that the parameter to Canvas::save() is a filename, not a URL. It fails when "file://tmp/i2.png" is used.

                Asking a question about code? http://eel.is/iso-c++/testcase/

                1 Reply Last reply
                0
                • Q Offline
                  Q Offline
                  qomg
                  wrote on last edited by
                  #20

                  jeremy_k thanks it works great.

                  1 Reply Last reply
                  0
                  • B Offline
                    B Offline
                    beemaneni
                    wrote on last edited by
                    #21

                    Hi
                    does the above code really draw an image in the given path?
                    For me the file gets created but nothing in it... i have given save url as "/storage/sdcard0/a1.png".

                    Can u help me ?

                    Thanks in Advance,,

                    Bala B
                    Infinite Computer systems
                    Chennai

                    1 Reply Last reply
                    0
                    • D Offline
                      D Offline
                      DonRico
                      wrote on last edited by
                      #22

                      Hi

                      I decided to solve this a bit differently. I created a new QML type (c++ class) that takes in image url (local or remote) and spits out local url. In case of beginning http:// or https:// class checks if image is already downloaded from the remote server and in that case spits the local url right out w/o wasting the precious mobile data bandwidth.And then there a QML component that fills out the Image type source property when the local url is returned from my so called "Caching class". If anybody's interest I can strip it out of my project and put it up to github with decent comments.

                      1 Reply Last reply
                      0
                      • B Offline
                        B Offline
                        beemaneni
                        wrote on last edited by
                        #23

                        Hi DonRico
                        If u can post that code that would be an great help for me...can u?

                        Thanks

                        Bala B
                        Infinite Computer systems
                        Chennai

                        1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          DonRico
                          wrote on last edited by
                          #24

                          Ok, I'll try to find some spare time to separate it and put it.

                          1 Reply Last reply
                          0
                          • D Offline
                            D Offline
                            DonRico
                            wrote on last edited by
                            #25

                            Ok, the exmaple project is available in https://github.com/DonRico/QT-Image-Caching . There might be some issues since I've written QT for 2mos for now but it should give you the general idea.

                            1 Reply Last reply
                            0
                            • jeremy_kJ Offline
                              jeremy_kJ Offline
                              jeremy_k
                              wrote on last edited by
                              #26

                              Caching can also be handled with a "QQuickImageProvider":https://qt-project.org/doc/qt-5/qquickimageprovider.htmlQQuickImageProvider.

                              After defining and register a provider, image urls can be written as "image://ProviderName/path/to/image".

                              The same concept exists for Qt 4 in the form of QDeclarativeImageProvider.

                              Asking a question about code? http://eel.is/iso-c++/testcase/

                              1 Reply Last reply
                              0
                              • C Offline
                                C Offline
                                chuahanmandis
                                Banned
                                wrote on last edited by
                                #27
                                This post is deleted!
                                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