簡體   English   中英

在QML Camera的imageCapture中刪除捕獲的圖像

[英]Delete captured image in imageCapture of QML Camera

我正在處理圖像處理應用程序,並且使用此代碼

Camera {
    id: cam
    viewfinder.resolution: "640x480"
    viewfinder.minimumFrameRate: 5
    captureMode: Camera.CaptureStillImage
    imageCapture {
        resolution: "640x480"
        onReadyChanged: {
            imageDecoder.reset()  // my decoder class
            cam.imageCapture.capture()
        }
        onImageCaptured: {
            console.log(requestId, preview)
            imageDecoder.decodeQmlPreview(preview)
        }
    }
    imageProcessing {
        contrast: 0.60
    }
}


VideoOutput {
    id: output
    fillMode: VideoOutput.PreserveAspectCrop
    anchors.fill: parent
    source: cam        
}

我看到所有這些捕獲的圖像( preview )都存儲在硬盤驅動器上,並且從未被刪除。 如何刪除這些圖像? 我的可用硬盤空間非常有限。

# ls -lh | grep IMG
-rw-r--r--    1 root     root       10.5K Jan  1 00:40 IMG_00000001.jpg
-rw-r--r--    1 root     root       12.2K Jan  1 00:45 IMG_00000002.jpg
-rw-r--r--    1 root     root       15.6K Jan  1 00:48 IMG_00000003.jpg
-rw-r--r--    1 root     root       15.6K Jan  1 00:49 IMG_00000004.jpg
-rw-r--r--    1 root     root       11.4K Jan  1 01:05 IMG_00000005.jpg

QML與FS具有相當隱式的關系-它的內部功能可以讀取甚至有時可以寫入,但是它似乎沒有為用戶直接與FS交互而定義的API。

這意味着您將必須在C ++中實現該功能,並將其公開給QML。

我的做法是創建一個class System : public QObject然后將所有必需的內容放入main.cpp

  System s(&engine);
  engine.rootContext()->setContextProperty("Sys", &s);

然后從QML您可以簡單地Sys.doYourStuff() 在您的情況下,您需要靜態函數bool QFile::remove(const QString &fileName)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM