找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: lhc0688

[已解决] 只差一步:解决PE中DPI显示缩放难题!

   火... [复制链接]
发表于 2022-5-24 21:37:52 | 显示全部楼层
527104427 发表于 2022-5-24 19:30
有几个问题不得不提一下:

改好了,exit file是可以的,不加这个确实不能中断
回复

使用道具 举报

发表于 2022-5-24 22:48:48 | 显示全部楼层
hhh333 发表于 2022-5-24 19:02
是的,改后逻辑性更好了。
在两台电脑上经过测试,其中一台的最大分辨率可以达到1920X1080,能够直接更 ...

怎么判断,不能超过350%的,
屏幕截图 2022-05-24 224554.png

点评

是不是这个规律: ifex $%cury%>=480, TEAM set dpi=100|set maxdpi=125 //DV(480p) //720*480 ifex $%cury%>=720, set dpi=100|set maxdpi=150 //HD(720p) //1280*720 ifex $%cury%>=1080, set dpi=100|  详情 回复 发表于 2022-5-24 23:34
回复

使用道具 举报

发表于 2022-5-24 23:34:39 | 显示全部楼层
本帖最后由 hhh333 于 2022-5-25 00:05 编辑
2011whp 发表于 2022-5-24 22:48
怎么判断,不能超过350%的,

是不是这个规律:
`根据分辨率设定自动DPI值和最大直达DPI值
disp ? cur
mstr* * curx,cury=<1*>cur
set autodpi=100
ifex $%cury%>=480,team set autodpi=100|set maxdpi=125  //DV(480p)  //720*480
ifex $%cury%>=720,team set autodpi=100|set maxdpi=150  //HD(720p)  //1280*720
ifex $%cury%>=1080,team set autodpi=100|set maxdpi=175  //1K(1080p、Full HD、FHD)    //16:9 1920*1080   //16:10 1920*1200  //一般:1920*1080,虽然具有近 2000 像素的水平分辨率,但在大部分的媒体,包括网页制作以及影像制作,书籍等都认为 1080p 与 2K 分辨率为不同的分辨率而非相同,并不是标准的2K,但因为1080p具有近 2000 像素的水平分辨率,因此1080p可以被归类为2K,而非1K。
ifex $%cury%>=1152,team set autodpi=150|set maxdpi=200  //2K     //2048*1152
ifex $%cury%>=1440,team set autodpi=175|set maxdpi=250  //2.5K   //WQXGA:2560*1600   //Quad HD:2560*1440
ifex $%cury%>=2160,team set autodpi=200|set maxdpi=350  //4K     //一般:4096*2160    //Full Aperture 4K:4096*3112  //Academy 4K:3656*2664  //UHDTV标准:3840*2160
ifex $%cury%>=4320,team set autodpi=300|set maxdpi=500  //8K     //7680*4320

回复

使用道具 举报

发表于 2022-5-25 09:48:27 | 显示全部楼层
https://docs.microsoft.com/zh-cn ... d-registry-settings

里面有表可参考,推荐值不光和分辨率有关,和屏幕大小也有关的。
但目前投影仪的屏幕大小是系统没法得知的。
回复

使用道具 举报

发表于 2022-5-25 10:00:40 | 显示全部楼层
按照分辨率修改dpi不大正确,同时需要考虑屏幕尺寸
回复

使用道具 举报

发表于 2022-5-25 10:23:02 | 显示全部楼层
这次应该逻辑上严谨了吧: setdpi.7z (4.11 KB, 下载次数: 28)
作了一些改变:
1、setdpi /reg 改为注册到能够直达的最大值(目前是按经验根据分辨率确定的);
2、原先是选择不注册也会清除原先的菜单,现在改成<=0才清除右键菜单;

感谢527104427等各位大佬提供学习机会

dpiw10sys300.PNG

点评

另外想问一下,calc前面加“^”这个符号有什么讲究?  详情 回复 发表于 2022-5-25 12:31
回复

使用道具 举报

发表于 2022-5-25 11:55:34 | 显示全部楼层
本帖最后由 hhh333 于 2022-5-25 12:28 编辑
527104427 发表于 2022-5-25 11:23
两个问题:
1.你这里弄错了,ispe是命令,pe才是变量名,所以下面应该是%pe%,而不是%ispe%
(汗,原来 ...

1、抄作业没细看,确实不对
2、还是我这个逻辑合理些吧,写入的时候才清,不影响别人

改过来了: setdpi.7z (4.11 KB, 下载次数: 39)  没得错了吧
回复

使用道具 举报

发表于 2022-5-25 12:31:07 | 显示全部楼层
hhh333 发表于 2022-5-25 10:23
这次应该逻辑上严谨了吧:
作了一些改变:
1、setdpi /reg 改为注册到能够直达的最大值(目前是按经验根 ...

另外想问一下,calc前面加“^”这个符号有什么讲究?
回复

使用道具 举报

发表于 2022-5-25 22:58:09 来自手机 | 显示全部楼层
527104427 发表于 2022-5-25 21:47
不玩了,最后再憋个大招:

根据szwp
提供的网址研究了一下,发现系统早就为我们算好了 ...

传0进去,就是推荐值,始终如一,我前面翻译api的时候就说过
回复

使用道具 举报

发表于 2022-5-26 10:13:36 | 显示全部楼层
527104427 发表于 2022-5-25 21:47
不玩了,最后再憋个大招:

根据szwp提供的网址研究了一下,发现系统早就为我们算好了 ...

似乎也不是很好,win7系统不支持函数SystemParametersInfoW
回复

使用道具 举报

发表于 2022-5-26 10:34:54 | 显示全部楼层
楼主欢迎进群1067888280有你要的答案
回复

使用道具 举报

发表于 2022-5-26 11:28:08 | 显示全部楼层
本帖最后由 2011whp 于 2022-5-27 11:48 编辑

再猜  微软意图:
屏幕截图 2022-05-27 114730.png

估计 6.25 以上 win才能 完美表现。

以前基于 像素的win 要求实际屏,最少600像素高度
回复

使用道具 举报

发表于 2022-5-26 11:43:57 | 显示全部楼层
本帖最后由 hhh333 于 2022-5-26 11:46 编辑
527104427 发表于 2022-5-26 10:15
设置不了,但可以查询。只要查询到建议值,直接干注册表
根据微软官方的说法是这么理解的,查询支持win2 ...

我也是这么想的,先用老的查表法,ret158>0时才用新方法。win7的ret158确实是0,说明返回没成功
回复

使用道具 举报

发表于 2022-5-26 14:34:45 | 显示全部楼层
527104427 发表于 2022-5-26 10:15
设置不了,但可以查询。只要查询到建议值,直接干注册表
根据微软官方的说法是这么理解的,查询支持win2 ...

用数字0调用即是推荐值(自动值)和能够直达的最大值也是猜的呀
回复

使用道具 举报

发表于 2022-5-26 16:35:54 | 显示全部楼层
527104427 发表于 2022-5-26 15:24
自动值不是猜的,最大值目前不知道怎么计算,只能猜了

精确对值不用猜
PPI.png
回复

使用道具 举报

发表于 2022-5-26 16:57:11 | 显示全部楼层
527104427 发表于 2022-5-26 15:24
自动值不是猜的,最大值目前不知道怎么计算,只能猜了

微软自己都没搞定所有显示器的dpi问题,根据分辨率和当前dpi来设定简单粗爆,没必要浪费太多时间在dpi上
回复

使用道具 举报

发表于 2022-5-26 17:03:21 | 显示全部楼层
pe自身就能自适应dpi,除了面对苹果电脑其他都能自适应,不能自适应dpi的pe就应该修一下,自适应dpi能适配大多数屏幕
回复

使用道具 举报

发表于 2022-5-26 17:05:25 | 显示全部楼层
2k及以上分辨率的笔记本启动pe很容易测试是否自适应dpi
回复

使用道具 举报

发表于 2022-5-26 17:38:45 | 显示全部楼层
527104427 发表于 2022-5-26 17:29
这是兴趣的问题,不是时间的问题。我目前只有一个23寸显示器,什么都测不了

我有一个笔记本。完全自适应dpi
回复

使用道具 举报

发表于 2022-5-26 18:15:22 | 显示全部楼层
本帖最后由 hhh333 于 2022-5-27 07:13 编辑
527104427 发表于 2022-5-26 17:29
这是兴趣的问题,不是时间的问题。我目前只有一个23寸显示器,什么都测不了

主要是兴趣玩一下,顺便跟大佬们学习一下PECMD脚本,也蛮有意思。
又把脚本修改了一下: setdpi.7z (4.35 KB, 下载次数: 27)
1、ret158>0,ret159应该也>0,因此我的脚本检测ret159>0再刷新有点画蛇添足;
2、我的前面程序存在一个目标DPI值只要通过注册表法时标志的是上一次的当前DPI,这次修正了;
3、只要是采用注销法,刷新桌面就没有意义了,这次改了。
回复

使用道具 举报

发表于 2022-5-26 19:49:45 | 显示全部楼层
本帖最后由 2011whp 于 2022-5-26 20:13 编辑
527104427 发表于 2022-5-26 18:33
根据 227# 大佬发的表格,ppi最高的只有183.58,换算成dpi顶多也只有200%,貌似没有200%以上的,这个你怎 ...

227# 那个表是  物理显示器  制造参数,用PPI不准确

我认同 红毛大  的说法:PPI是 图形模型→显示缓冲  计算用的


dpi放大2.jpg
同样的显示 信号:
    如果 是城市 广场 显示屏 :  1920 × 1080  按dpi=8 制造的,本身很大的
    如果  电脑显示器: 1920 × 1080  按dpi=96 制造的,这是常规映像
    如果   笔记本:      1920 × 1080  按dpi=128 制造的,感觉会小些
    假如   虚拟制造屏:1920 × 1080  按dpi=PPI 制造的, 用眼看,是最等于  图形模型的

——————————————————————————————————————
现在的实践表明:(隐约 在受#223楼 那种 制约)
     1920屏 : 最多放大 175%
      3840屏: 最多放大 350%
   因为现在显示技术方向  要 脱 离dpi,走向模型的 实际尺寸(或叫 图纸尺寸)            在PPI屏 上,模型是没有放大的,只是 实际屏的 dpi 给人的视觉 放大了

回复

使用道具 举报

发表于 2022-5-26 20:48:32 | 显示全部楼层
527104427 发表于 2022-5-26 18:33
根据 227# 大佬发的表格,ppi最高的只有183.58,换算成dpi顶多也只有200%,貌似没有200%以上的,这个你怎 ...

没有大分辨率的屏不好试
回复

使用道具 举报

发表于 2022-5-26 21:11:07 | 显示全部楼层
527104427 发表于 2022-5-26 20:48
你的意思是这样的吧:
1920x1080计算最大dpi:1080/6.25/96=1.8(约175%)
3840x2160计算最大dpi:2160/6 ...

基本对得上
900-1.5
1080-1.8

点评

1600/96/6.25=2.667 [attachimg]502006[/attachimg]  详情 回复 发表于 2022-5-26 21:38
回复

使用道具 举报

发表于 2022-5-26 21:29:06 | 显示全部楼层
527104427 发表于 2022-5-26 21:25
那这个分辨率应该是最大分辨率,而不是当前的分辨率吧?
猜想正确的话,那又能整活了

500算起来只要3000,4320对应的是7.2
回复

使用道具 举报

发表于 2022-5-26 21:38:28 | 显示全部楼层
本帖最后由 2011whp 于 2022-5-26 21:40 编辑
hhh333 发表于 2022-5-26 21:11
基本对得上
900-1.5
1080-1.8

  1600/96/6.25=2.667  (vbox 估计永远是 96)
屏幕截图 2022-05-26 213341.png
回复

使用道具 举报

发表于 2022-5-26 22:14:20 | 显示全部楼层
527104427 发表于 2022-5-26 21:34
试了一下,居然是按当前分辨率算的,改了分辨率,最大DPI也跟着改!
你说的问题好解决,大于500%的一律 ...

假如win,是知道 你的显示器尺寸

   23.8寸: 1920时:50厘米 = 96dpi  (1920/96*2.54=50)
                 1440时:50厘米 =  72dpi   (1440/x*2.54=50)

     那说明 win 系统的dpi 一般是 显示器最大dpi ,切换分辨率 不影响
     (不懂,从现象推测)

   
回复

使用道具 举报

发表于 2022-5-27 06:24:14 | 显示全部楼层
本帖最后由 hhh333 于 2022-5-27 07:26 编辑
527104427 发表于 2022-5-26 21:34
试了一下,居然是按当前分辨率算的,改了分辨率,最大DPI也跟着改!
你说的问题好解决,大于500%的一律 ...


win8pe中有个超级怪现象,如果先切到125%,再切自动,屏幕会变成75%;如果先切到150%,再切自动屏幕会变成50%,图标缩小一半差不多看不清了。
经追踪,是因为call $--bool --qd --ret:ret158 user32.dll,SystemParametersInfoW,#158,0,*pvParam,1这个函数在切125注销后第一次运行,vParam将返回1;同样切150%以后第一次运行vParam将返回2;
因此导致返回1的算出的DPI为75%,返回2的为50%;但奇怪的是第二次运行函数又正常了,vParam返回0
刚才在脚本中运行两次158也不行,但在PECMD窗口中直接运行,第一次不正常,第二次正常。
目前只有加一条ifex $%dpi%<100, set dpi=100



回复

使用道具 举报

发表于 2022-5-27 07:19:19 | 显示全部楼层
本帖最后由 hhh333 于 2022-5-27 07:41 编辑
527104427 发表于 2022-5-26 23:33
我发现你的发言都很有水平,受益匪浅,只是有些不好理解

SystemParametersInfoW函数可不可以设成75%或50%?既然是缩放,不能只有放没有缩吧?注册表注销法反正是可以的
这是75%的效果

w8dpi75.PNG
回复

使用道具 举报

发表于 2022-5-27 08:19:50 | 显示全部楼层
527104427 发表于 2022-5-26 21:34
试了一下,居然是按当前分辨率算的,改了分辨率,最大DPI也跟着改!
你说的问题好解决,大于500%的一律 ...

211楼的链接没仔细看啊,注意表4和表5间的说明。
加大缩放因子,相当于降低分辨率,如果低于800*600,那实用性就太差了。
回复

使用道具 举报

发表于 2022-5-27 08:28:10 | 显示全部楼层
参考一下:
屏幕尺寸和分辨率.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-9-20 14:04

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表