[代码片段] 获取分辨率DPI和像素、毫米、英寸互相转换
private static float DEFAULT_DPI_X = 0;
private static float DEFAULT_DPI_Y = 0; /// <summary>获取分辨率DPI</summary>
/// <param name="dpiX"></param>
/// <param name="dpiY"></param>
public static void GetDPI(out float dpiX, out float dpiY)
{
if (DEFAULT_DPI_X == 0 || DEFAULT_DPI_Y == 0)
{
using (Bitmap map = new Bitmap(100, 100))
{
using (Graphics g = Graphics.FromImage(map))
{
DEFAULT_DPI_X = g.DpiX;
DEFAULT_DPI_Y = g.DpiY;
}
}
}
dpiX = DEFAULT_DPI_X;
dpiY = DEFAULT_DPI_Y;
}
/// <summary>
/// 毫米转为像素(注:dpi分水平和垂直,获取方法为得到 Graphics 的实例化对象 g,调用g.DpiX、g.DpiY)
/// </summary>
/// <param name="mm">毫米</param>
/// <param name="fDPI">分辨率(水平/垂直)</param>
/// <returns></returns>
public static float MillimetersToPixel(float mm, float fDPI)
{
//毫米转像素:mm * dpi / 25.4
return (float)Math.Round((mm * fDPI / 25.4f), 2);
}
/// <summary>
/// 像素转为毫米(注:dpi分水平和垂直,获取方法为得到 Graphics 的实例化对象 g,调用g.DpiX、g.DpiY)
/// </summary>
/// <param name="px">像素</param>
/// <param name="fDPI">分辨率(水平/垂直)</param>
/// <returns></returns>
public static float PixelToMillimeters(float px, float fDPI)
{
//像素转毫米:px * 25.4 / dpi
return (float)Math.Round(((px * 25.4f) / fDPI), 2); ;
}
/// <summary>
/// 英寸到像素
/// </summary>
/// <param name="inches"></param>
/// <returns></returns>
public static float InchesToPixels(float inches, float fDPI)
{
return (float)Math.Round(inches * fDPI, 2);
}
/// <summary>
/// 像素到英寸
/// </summary>
/// <param name="px"></param>
/// <returns></returns>
public static float PixelsToInches(float px, float fDPI)
{
return (float)Math.Round(px / fDPI, 2);
}
/// <summary>
/// 毫米到英寸
/// </summary>
/// <param name="mm"></param>
/// <returns></returns>
public static float MillimetersToInches(float mm)
{
return (float)Math.Round(mm / 25.4f, 2);
}
/// <summary>
/// 英寸到毫米
/// </summary>
/// <param name="mm"></param>
/// <returns></returns>
public static float InchesToMillimeters(float Inches)
{
return (float)Math.Round(Inches * 25.4f, 2);
}
————————————————
版权声明:本文为CSDN博主「SZ大伟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/michelsn/article/details/80287160
[代码片段] 获取分辨率DPI和像素、毫米、英寸互相转换的更多相关文章
- DPI,像素,英寸的关系
DPI * 英寸 = 像素 eg:在150dpi打印 (2 x 4)英寸的照片 等到多少像素的图像 (150*2)x (150*4) =300 x 600像素 同理可得 已知像素.英寸大小 求DPI ...
- wndows程序设计之书籍知识与代码摘录-获取视屏显示器像素等参数GetsystemMetrics
以下的代码段用于获取视屏显示器的高度宽度,以像素为单位. int sxScreen, cyScreen; cxScreen = GetSystemMetrics (SM_CXSCREEN); cySc ...
- C# API 获取系统DPI缩放倍数跟分辨率大小
原文:C# API 获取系统DPI缩放倍数跟分辨率大小 using System; using System.Drawing; using System.Runtime.InteropServices ...
- 通过反射获取T.class代码片段
说明 持久化框架MyBatis和Hibernate中我们多多少少都会自己取写工具类!但是我们一般都会处理结果集转换成持久化对象,但是我们都要使用类! 代码片段 abstract public clas ...
- js/jquery/html前端开发常用到代码片段
1.IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法.条件注释只能用于IE5以上,IE ...
- 拥有的50个CSS代码片段(上)
1. CSS 重置 ;;;font-size: 100%; font: inherit; vertical-align: baseline; outline: none; -webkit-box-si ...
- [代码片段]读取BMP文件
文件名mybmp.c //实现了读取24位BMP文件,还有一些测试信息 //定义mybmp.c里面用到的函数和相关头文件.常量 //参考了网友sailinghz在CSDN论坛的帖子:http://bb ...
- IOS开发-OC学习-常用功能代码片段整理
IOS开发-OC学习-常用功能代码片段整理 IOS开发中会频繁用到一些代码段,用来实现一些固定的功能.比如在文本框中输入完后要让键盘收回,这个需要用一个简单的让文本框失去第一响应者的身份来完成.或者是 ...
- CSS的50个代码片段
1.css全局 html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a ...
- (转)每位设计师都应该拥有的50个CSS代码片段
原文地址:http://www.cnblogs.com/fengyuqing/archive/2013/06/15/css_50.html 面对每年如此多的 新趋势 ,保持行业的领先是个很困难问题. ...
随机推荐
- 记一次mysql5.7保存Emoji表情
1.错误:SQLException; SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\x9F\x90\x96 \ ...
- vant-ui经验
1.van-checkbox搭配van-cell使用,点击圆圈区域,不触发定义的click函数. 解决:给van-checkbox添加一层div,添加click事件:van-checkbox也添加cl ...
- 有一个按钮,点击后就发起一次请求,我现在要限制每2S只能发起一次请求,怎么办?
1.防抖/节流方案2.临时变量记录最后发起请求的时间,点击时对比时间差的方案
- Rsync已过时?替代文件同步软件了解一下
随着企业结构分散化的不断扩大,企业内部和企业间的信息互动更加频繁.越来越多的企业要求内部各种业务数据在服务器.数据中心甚至云上能够有实时的同步留存.所以,企业需要文件同步软件,通过在两个或更多设备之间 ...
- 面试视频知识点整理1-12(渲染机制,js运行机制,页面性能,错误监控)
技巧(赞美面试官研究的比较深) 1.渲染机制 什么是DOCTYPE及作用? DTD(文档类型定义)是一系列的语法规则,用于定义文件类型.浏览器会根据它来判断文档类型,决定使用何种协议来解析以及切换浏览 ...
- 305-基于XC7Z020的AI 人工智能 可编程相机
基于XC7Z020的AI 人工智能 可编程相机 一.产品概述 本产品为一款基于FPGA soc的支持二次开发的智能相机平台,基于大量已有的图形计算库和我们开发的支持库,用户可以使用python语言,轻 ...
- 访问不了github解决方案
1.首先通过网址https://github.com.ipaddress.com/www.github.com查看当前github.com对应的IP地址,查到的信息如下图所示 修改hosts文件,wi ...
- 【相关杂项】stdio.h中的sprintf函数/union的作用
1.定义int sprintf(char *str, const char *format, ...) 1.paras:*str:目标字符串首指针 *format:要写入目标字符串的 ...
- redis统计用户活跃数量
1.说明,redis 位图存储节省内存,用户id:156,1333; 如果用户登录,根据日期存储为1 setbit 20209001 156 1 ;//id为156的用户在1月1号登录了 setbit ...
- stm32 微秒定延时问题
problem: 如果想用计时器定时微秒级,不要使能自动重载:代码如下: static uint16_t counter; void Delay_us(uint32_t us){ counter=0x ...