c# - 如何使用屏幕分辨率缩放图像
问题描述
我正在用 C# 和 Windows 窗体编写一个简单的程序来处理像素艺术图像,我需要随着画布分辨率的变化来缩放这些图像。
我在 PictureBox 上绘制图像并使用Matrix将其图形对象缩放到某个分辨率,我需要一种方法来根据新分辨率在各个方向正确缩放这些图像,而不会使它们的像素变为模糊等
这是我用来缩放图形的方法:
public void PictureBox_Paint(object sender, PaintEventArgs e)
{
var graphics = e.Graphics;
graphics.MultiplyTransform(ScaleMatrix());
}
public float VirtualWidth = 1024;
public float VirtualHeight = 768;
public Matrix ScaleMatrix()
{
var matrix = new Matrix();
var x = (float) this.PictureBox.Width / VirtualWidth;
var y = (float) this.PictureBox.Height / VirtualHeight;
matrix.Scale(x, y);
return matrix;
}
完成这项任务的正确实施是什么?
解决方案
推荐阅读
- mongodb - MongoDB 聚合查询:$size 仅当等于某个值时才计数项目
- c++ - 仅覆盖 C++ 映射迭代器取消引用
- javascript - Vue.js 动态类
- python-3.x - 确定 npy.nan 是否存在于 pandas.Series
- maple - 如何解决这个 Maple 问题?
- django - Django Admin 使用 JWT
- javascript - 反应路由器4查询参数示例不起作用
- python - 使用诱变剂将图片写入 wma 文件
- javascript - 根据 props 改变 react 组件的样式
- python-3.x - PyQt5 - 使用取消按钮关闭 QDialog 窗口