【发布时间】:2019-08-21 11:23:17
【问题描述】:
我创建了一个 qml 应用程序,在 Wacom 平板电脑上绘图到 qml 画布。 绘制完成后,我将base64图像发送到服务器,如果需要,我读取并绘制回来。
绘制的图像看起来不错。当我在服务器上查看图像时,它的质量很好。但是当我再次将它绘制到画布上时,它有点模糊。如果我重复保存和重绘图像,它会越来越模糊。
在高清屏幕上不是很明显,但是当我使用 4K 屏幕时,图像质量很糟糕。
当我不使用 Qt::AA_EnableHighDpiScaling 时,质量仍然很好。但是如果没有 Qt::AA_EnableHighDpiScaling,应用程序 gui 在 4k 屏幕上太小了。
当我在画布中禁用平滑和抗锯齿时,图像不模糊但看起来不太好。
这是我用来保存图像的:
var loadedImage = canvas.toDataURL("image/png")
这是用于加载图像:
canvas.loadImage(loadedImage)
Canvas{
id: canvas
onImageLoaded:{
var ctx = canvas.getContext("2d");
ctx.drawImage(loadedImage,canvas.x,canvas.y,canvas.width,canvas.height);
canvas.requestPaint();
}
及部分绘图功能:
var ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(canvas.prevX, canvas.prevY);
ctx.lineTo(newPoint.x, newPoint.y);
ctx.stroke();
ctx.closePath();
canvas.prevX = newPoint.x;
canvas.prevY = newPoint.y;
canvas.requestPaint();
在启用 AA_EnableHighDpiScaling 时如何修复 drawImage?我使用 Qt 5.9。
【问题讨论】:
标签: qt canvas qml dpi drawimage