1 px = 1/96th in 1 in
在我以前的18.5英寸的屏幕,screen.width是1367 px和英寸屏幕宽度14 inches.按W3C公式:
14 * 96 px = 1344 px
W3C公式偏离了20/14 px per inch.由于偏差太小,1 inch在我的屏幕上97.4 px我接受了W3C公式,并且认为CSS像素是一个absolute unit of measure,意味着它总是等于0.75 pt(物理单位).
这一周,我买了一台21.5英寸全高清屏幕,它具有宽度19 inches和screen.width是1920 px.所以现在1 inch在我的屏幕上是:
1920/19 ~ 101 px
不仅如此,我朋友的屏幕是24英寸,并具有相同的1920 x 1080分辨率.24英寸和21.5英寸都不能对应相同数量的CSS像素.
所以现在,在我的屏幕上,CSS像素不是绝对的测量单位.屏幕上的一切都相对较小.即便如此,现在我被我的字体大小所迷惑.当我在屏幕上找到16 px作为最小可读字体时,它在较小的屏幕上实际上更大.因为16 px我的屏幕14px在我以前的小屏幕上的厘米与厘米相同.我设计我的网站错了,我不再是一个好的前端开发人员了.
所以问题是:
我想有两个像素着色器; 第一个做一件事,然后下一个做别的事情.这是可能的,还是我必须将所有内容打包到一个着色器中?
什么是最常用的像素尺寸(主要是宽度),有哪些优点和缺点?
我怎样才能最好地找到一种快乐的媒介来为拥有各种显示器尺寸的人们提供良好的体验?
一个解释而不仅仅是大小的答案将非常感激.
我在浏览器上有一个图像.
我想得到图像颜色的左上角像素(坐标为:0,0),无论图像是否旋转.
我怎么能这样做,使用JavaScript或PHP代码?
我需要python来改变图片上一个像素的颜色,我该怎么做呢?
我自己没有用Retina MacBook来测试这些东西,互联网上似乎有很多关于高像素密度显示器网页设计的混淆.
现在,我假设带有Retina显示屏的MacBook上的WebKit将页面缩放了大约两倍的大小,因为大多数网页都不是为了适应更高的像素密度而构建的?
在我看来,设计这些或实际上任何类型的显示器的理想情况是使用ems而不是像你可能做的那样;
@media
only screen and (-webkit-min-device-pixel-ratio : 1.5),
only screen and (min-device-pixel-ratio : 1.5) {
body { font-size: 150%; }
}
@media
only screen and (-webkit-min-device-pixel-ratio : 2),
only screen and (min-device-pixel-ratio : 2) {
body { font-size: 200%; }
}
Run Code Online (Sandbox Code Playgroud)
并且整个页面将相应地缩放.或者是吗?在Retina MacBooks上运行的浏览器上的默认字体大小是16px还是更高?因为如果它更高,缩放效果会倍增.
我想我的问题是; 如果我一直使用ems,我唯一需要做的就是改变每个设备像素比的字体大小?
使用谷歌(和这个网站)我看到了一些类似的问题,但我的问题仍然存在:
"我想绘制一个图像(不读取文件),能够操纵该图像中每个像素的颜色."
我看到另一个问题,建议做这样的事情:
from tkinter import *
A=Tk()
B=Canvas(A)
B.place(x=0,y=0,height=256,width=256)
for a in range(256):
for b in range(256):
B.create_line(a,b,a+1,b+1,fill=pyList[a][b])#where pyList is a matrix of hexadecimal strings
A.geometry("256x256")
mainloop()
Run Code Online (Sandbox Code Playgroud)
事实上,这回答了我的问题,但......这是非常缓慢的.我应该怎么做1920x1080图像?等我死?
所以我要求的东西与上面的代码相同,但速度更快
我找到了一种方法来改进jsbueno建议的方法,它在页面链接中解释:
我设计了一个程序,基本上,它将几何形状切割成许多小三角形(在"左侧画布"中),对这组三角形应用一些简单的数学变换,并在新的配置中重绘它们.请参阅下面的屏幕截图

为了绘制这些三角形,我使用QPainter::drawPolygon.右边的每个三角形对应左边的三角形,所以我知道我想用什么颜色来绘制它.
到目前为止,很好.即使我画了比这更多的三角形(当我使用更小的三角形来切割形状时),这足够快.
我在程序中添加了一个功能:我可以绘制从图片中提取的三角形而不是普通的三角形:请参阅下面的截屏.

问题是我这样做的方式太慢了.我是这样做的:
QPainter::setPen(QColor)和QPainter::drawPoint(QPoint)绘制像素.我是Qt编程的新手,我对图形一无所知,所以这就是我能想到的.问题是它"不可接受"太慢(paintEvent每个画布大约需要0.15s,而普通三角形则为0.01s).
我跑了一个探查器试图了解发生了什么,我注意到在画布小部件中paintEvent,
QPainter::drawPointQPainter::setPen它似乎QPainter::drawPoint太复杂和缓慢:我只是想让它打印一个给定颜色的像素,就是这样.
我可能已经找到了解决我的问题的方法:存储一个QImage(作为我的画布小部件的成员变量),它代表我希望我的画布显示的整个事物,并在我的paintEvent像素中完全定义它,然后立即绘制它在我结束paintEvent用QPainter::drawImage.我有一个提示,这会更快.但在我重新编写代码之前,我想知道这是否真的是我想要做的.
我希望我没有让你做死!非常感谢您的见解.
由于工作中的安全限制,我无法安装Chrome扩展程序.Chrome有一个内置于开发人员工具的标尺,但我无法弄清楚如何定义开始和结束点,就像标尺允许的那样.
是否有任何工具或技术可用于测量不需要安装Chrome扩展程序的像素?