墨水屏 函数Paint_SetScale的详解
在微雪(Waveshare)墨水屏的驱动库中,Paint_SetScale(4)
是一个用于 设置绘图缩放比例 的函数,主要影响后续绘图操作(如画点、线、文字等)的像素放大效果。以下是详细说明:
1. 函数作用
- 功能:
指定绘图时的 像素放大倍数,例如Paint_SetScale(4)
表示每个逻辑像素会被绘制为 4x4 的物理像素块。 - 目的:
放大显示内容,提高可视性(尤其在低分辨率屏幕上显示粗体文字或图形)。
2. 参数解释
参数值 | 效果 | 示例(绘制一个点) |
---|---|---|
1 | 无缩放(1:1) | 1x1 像素 |
2 | 2倍缩放(2x2像素块) | 2x2 像素 |
4 | 4倍缩放(4x4像素块) | 4x4 像素 |
3. 实际应用示例
(1) 绘制放大文字
Paint_NewImage(image, EPD_WIDTH, EPD_HEIGHT, 0, WHITE);
Paint_SetScale(4); // 设置4倍缩放
Paint_DrawString_EN(10, 20, "ABC", &Font12, BLACK, WHITE);
- 效果:
字体ABC
的每个像素会被放大为 4x4 的方块,文字更粗、更易识别。
(2) 绘制放大图形
Paint_SetScale(2); // 2倍缩放
Paint_DrawRectangle(30, 30, 60, 60, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
- 效果:
矩形的边框线条变粗(每个逻辑点扩展为 2x2 物理点)。
4. 注意事项
- 缩放范围:
通常支持1
、2
、4
倍缩放,具体取决于驱动库实现。 - 性能影响:
放大倍数越高,绘图计算量越大(但墨水屏刷新速度仍受硬件限制)。 - 与字体配合:
缩放对内置字库(如Font12
、Font16
)有效,但自定义位图需手动放大。 - 局部刷新限制:
若使用局刷(Partial Refresh),需确保缩放后的图形不超出局刷区域边界。
5. 常见问题
Q:设置缩放后为何显示不全?
- 原因:
缩放后的图形超出画布边界(如4倍缩放下,坐标(x, y)
实际占用(x*4, y*4)
到(x*4+3, y*4+3)
)。 - 解决:
调整绘图坐标或缩小缩放倍数。
Q:缩放对灰度模式的影响?
- 4灰度模式:
缩放仅改变像素块大小,不改变灰度值(如GRAY2
仍为中间灰色,但显示为 4x4 的灰色块)。
总结
- 核心用途:通过
Paint_SetScale(4)
放大内容,提升低分辨率屏幕的可读性。 - 适用场景:
- 需要突出显示的文字/图标
- 小型墨水屏(如2.7英寸)上的粗体信息
- 搭配建议:
- 缩放后建议使用
DOT_PIXEL_1X1
绘制,避免过度模糊。 - 全刷模式下使用效果最佳,局刷需谨慎计算区域。
- 缩放后建议使用