不同分辨率下1像素在屏幕上的大小不一样,这样的话如何能与毫米转换呢?
一个是长度单位,一个是最小元素单位,除非给定一个分辨率,否则没有可转化性。
一般的制图软件都是设一个单位像素,比如PhotoShop默认 72像素/英寸通用名字不知道。
适合一个图片的大小也就是字符串能正好放在某个区域中,12号的字的长宽会小于或等于12像素,得到图片的长宽,试验一下就可以了。也可以得到字符串所占用的宽度(像素),使用FontMetrics类,再和图片慢慢对比。

解决方案 »

  1.   

    最主要的是图片怎么转换回来,例如设定单位像素 dpi = 300;要画一个宽20cm的图形,转化为象素length = dpi / 25.4 * 200 ,画完之后,用的时候怎么还原成20cm啊?
    字体可以根据宽度来设置,问题是字体大小有没有上限啊?
    还有在solaries下“Ms 明朝”等字体不认,有没有人知道通用名字啊,谢谢!
      

  2.   

    我刚好在做同类项目:
    int screenRes=Toolkit.getDefaultToolkit().getScreenResolution();//获取屏幕分辩float realLength=(float)thePexelsYouHaveGot/(float)screenRes*25.4;//转为mm。
      

  3.   

    忘了回答字体问题,如果你的程序确需跨平台使用的话,我想不应该使用固定的字体(我们老师曾告诉我:永远不要去想让你的软件成为万能软件),你可以用Xml文件维护一个用到的字体表,然后提供一个界面让用户根据需要选择字体(JVM会检测出当前系统的所有字体),使用时用字体序号来对应具体的字体名就好了。
      

  4.   

    谢谢lzmailcn(一年前的新手),我本来也是用的toolkit,不过我发觉还是有误差,这也算了,不过主要是对方不要用这个,他们默认的dpi是300,我也没办法。
    字体看来的确得这样。 cuizm(射天狼),别愤,我赚日本人钱怎么了