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.");
}
});
}
}
}
qml 裁减图片并保存裁减后的图片
于 2024-04-22 14:59:17 首次发布