通过Python实现DPI获取与Base64图片缩放功能
在日常开发中,DPI(每英寸像素点数) 与 图片处理 常常息息相关。本文将详细介绍如何使用 Python 实现两大功能:
- 获取当前屏幕的 DPI 值 及缩放倍数。
- 对 Base64 编码图片进行缩小处理,并返回新的 Base64 编码。
一、获取当前系统 DPI 值与缩放倍数
在高分辨率显示器上,Windows 系统允许用户设置缩放级别以提高可视性。程序需要正确获取当前屏幕的 DPI 和缩放倍数来适配不同的显示环境。
代码实现
以下代码使用 Python 的 ctypes
库,通过调用 Windows API 来获取当前屏幕的 DPI 和对应的缩放倍数。
import ctypes
# 声明支持高 DPI 感知
ctypes.windll.shcore.SetProcessDpiAwareness(2) # 2 = 每显示器 DPI 感知
def get_dpi():
"""
获取当前屏幕的 DPI 值
"""
# 获取设备上下文
hdc = ctypes.windll.user32.GetDC(0)
# 获取水平 DPI 值
dpi = ctypes.windll.gdi32.GetDeviceCaps(hdc, 88) # 88 = LOGPIXELSX
# 释放设备上下文
ctypes.windll.user32.ReleaseDC(0