如何在Java中创建自定义高清图像

海登凯

我正在用Java创建图像,这些图像上写有透明背景的字体。我使字体使用不同的颜色以及不同类型的字体样式,因此我需要使程序具有动态性。问题是我正在使用Graphics2D并使用g2d.drawString()在缓冲图像上写入,图像几乎不是我要寻找的定义。我尝试过创建具有大字体大小的大图像,然后缩小比例,但这也不起作用。我还将所有可能的RenderingHints设置为最高定义。我希望像素密度足够高,如果将其与视网膜屏幕上的常规文本进行比较,则不会有太大区别。谢谢。

哈拉尔德·K

要在Java中获得“视网膜”质量的图像,您必须BufferedImage在两个维度上创建和渲染两倍于正常大小的图像(这会使图像放大4倍,我认为这就是@MadProgrammer的意思)。

然后,你一定不会下采样(或“规模”)在Java中的形象,而是保持BufferedImage在全尺寸,且只画了一半大小的图像以原生支持的Graphics2D实例。Graphics传递给AWT或Swing组件paint()paintComponent()方法对象通常很好(而来自的对象BufferedImage.get/createGraphics()则不是)。

我成功使用过这样的代码:

@Override
public void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    AffineTransform xform = AffineTransform.getScaleInstance(.5, .5);
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                        RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g2.drawImage(image, xform, null); // image being @2x or "retina" size
}

但是,请注意,现代计算机上的字体渲染使用的是“子像素抗锯齿”或“子像素渲染”,这特定于您要渲染到的屏幕设备(请参阅链接,但基本上,RGB模式或“布局”有所不同)从设备到设备)。这意味着BufferedImage通常不能使用子像素渲染,因此字体看起来不那么清晰。如果要渲染到单个LCD屏幕,则可以指定RenderingHints.TEXT_ANTIALIAS_LCD_*渲染提示之一以获得更好的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java中创建自定义JButton类?

来自分类Dev

如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

来自分类Dev

如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

来自分类Dev

如何在iOS7中为后退按钮创建自定义蒙版图像

来自分类Dev

如何在光滑的滑块中创建可在悬停时更改图像的自定义箭头?

来自分类Dev

如何在iOS7中为后退按钮创建自定义蒙版图像

来自分类Dev

如何在java中动态创建自定义xml元素(或自定义javafx场景控件)

来自分类Dev

如何在 java netbeanas 中的 jasper 报告图像中设置自定义报告

来自分类Dev

如何在Android中自定义图像按钮

来自分类Dev

如何在自定义形状xml中添加图像

来自分类Dev

如何在SVG标签中自定义PNG图像?

来自分类Dev

如何在MGWT ImageButton中添加自定义图像

来自分类Dev

如何在自定义形状xml中添加图像

来自分类Dev

如何在ActiveAdmin gem中创建自定义页面

来自分类Dev

如何在dart中创建自定义元素?

来自分类Dev

如何在Django中创建自定义选择字段?

来自分类Dev

如何在Android中创建自定义导航抽屉

来自分类Dev

如何在Laravel 4中创建自定义外观

来自分类Dev

如何在Drupal 7中创建自定义块?

来自分类Dev

如何在AngularJs服务中创建自定义事件

来自分类Dev

如何在Moodle中创建自定义表单?

来自分类Dev

如何在C ++中创建自定义整数序列

来自分类Dev

如何在android中创建自定义渐变?

来自分类Dev

如何在AMPL中创建自定义函数?

来自分类Dev

如何在SpriteKit中创建自定义混合模式

来自分类Dev

如何在Nginx中创建自定义位置?

来自分类Dev

如何在C#中创建自定义事件

来自分类Dev

如何在Powershell中创建自定义数组?

来自分类Dev

如何在angular中创建自定义指令

Related 相关文章

  1. 1

    如何在Java中创建自定义JButton类?

  2. 2

    如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

  3. 3

    如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

  4. 4

    如何在iOS7中为后退按钮创建自定义蒙版图像

  5. 5

    如何在光滑的滑块中创建可在悬停时更改图像的自定义箭头?

  6. 6

    如何在iOS7中为后退按钮创建自定义蒙版图像

  7. 7

    如何在java中动态创建自定义xml元素(或自定义javafx场景控件)

  8. 8

    如何在 java netbeanas 中的 jasper 报告图像中设置自定义报告

  9. 9

    如何在Android中自定义图像按钮

  10. 10

    如何在自定义形状xml中添加图像

  11. 11

    如何在SVG标签中自定义PNG图像?

  12. 12

    如何在MGWT ImageButton中添加自定义图像

  13. 13

    如何在自定义形状xml中添加图像

  14. 14

    如何在ActiveAdmin gem中创建自定义页面

  15. 15

    如何在dart中创建自定义元素?

  16. 16

    如何在Django中创建自定义选择字段?

  17. 17

    如何在Android中创建自定义导航抽屉

  18. 18

    如何在Laravel 4中创建自定义外观

  19. 19

    如何在Drupal 7中创建自定义块?

  20. 20

    如何在AngularJs服务中创建自定义事件

  21. 21

    如何在Moodle中创建自定义表单?

  22. 22

    如何在C ++中创建自定义整数序列

  23. 23

    如何在android中创建自定义渐变?

  24. 24

    如何在AMPL中创建自定义函数?

  25. 25

    如何在SpriteKit中创建自定义混合模式

  26. 26

    如何在Nginx中创建自定义位置?

  27. 27

    如何在C#中创建自定义事件

  28. 28

    如何在Powershell中创建自定义数组?

  29. 29

    如何在angular中创建自定义指令

热门标签

归档