我正在使用JavaFX创建我的Android应用程序分数的预览图像。
然而,输出的质量不如我想的那么好,即边缘模糊。
以下是一个例子:
为了产生这个,我创建了一个具有特定大小的画布 -
Canvas cv = new Canvas(iWidth, iHeight);
然后我得到了自己的分数 -
score.draw(cv);
然后将图像写入jpeg文件 -
Image fxImage = cv.getJavaFxCanvas().snapshot(new SnapshotParameters(), null);
BufferedImage bufimg = SwingFXUtils.fromFXImage(fxImage, null);
BufferedImage bufImgRgb = new BufferedImage(bufimg.getWidth(), bufimg.getHeight(), BufferedImage.OPAQUE);
Graphics2D graphics = bufImgRgb.createGraphics();
graphics.drawImage(bufimg, 0, 0, null);
ImageIO.write(bufImgRgb, "jpg", new File(m_strDefaultOutputDir + "\\test.jpg"));
graphics.dispose();
我已搜索过,但无法看到有必要做些什么来增加绘制图像的清晰度。
要绘制文字,例如,我正在调用
graphicscontext.fillText(m_strText, x, y);
如果我添加对strokeText的调用,文本会变得臃肿,而且没有任何明显的清晰度改善。
使用
绘制线条graphicscontext.strokeLine(fX1, fY1, fX2, fY2);
将笔划宽度设置为1并且线条仍然不清晰。
如何创建优质,高质量的图像生成?