qml 裁减图片并保存裁减后的图片

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.5
import QtQuick.Layouts 1.3

Window {
    visible: true
    width: 1920
    height: 1080
    title: qsTr("Crop and Save Image")
    property int cropWidth: 650			//裁减后的图片的宽度
    property int cropHeight: 360		//裁减后的图片的高度

    Image {
        id: sourceImage
        source: "qrc:/img/img/xxx.png"
        visible: true
    }

    Canvas {
        id: canvas
        width: 650
        height: 360
        visible: false
        onPaint: {
            var ctx = getContext("2d");
            //sourceImage 源图片, 
            //636 从源图片x坐标处开始裁减  
            //258 从源图片y坐标处开始裁减  
            //cropWidth 裁减的宽度
            //cropHeight 裁减的高度
            //0 从目的图片的 x处开始绘制
            //0 从目的图片的 y处开始绘制
            //650 要绘制的宽度
            //360 要绘制的高度
            ctx.drawImage(sourceImage, 636, 258, cropWidth, cropHeight, 0, 0, 650, 360)
        }
        Component.onCompleted: {
            // 在这里调用 paint 函数来生成 Canvas 的内容
            requestPaint();
        }
    }

    Button {
        text: "Crop and Save"
        x: 100
        y: 900
        width: 200
        height: 40
        onClicked: {
        	//grabToImage 保存canvas绘制的图片到指定路径下
            canvas.grabToImage(function(result) {
                if (result.saveToFile("xxx.png")) {
                    console.log("Image saved successfully.");
                } else {
                    console.log("Failed to save image.");
                }
            });
        }
    }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值