Java 如何使用HTMLEditorKit将图像加载到JEditorPane中,同时平滑地调整其大小?

Java 如何使用HTMLEditorKit将图像加载到JEditorPane中,同时平滑地调整其大小?,java,image,swing,htmleditorkit,Java,Image,Swing,Htmleditorkit,我使用HTMLEditorKit编写代码,将图像加载到JEditorPane中。我知道如何使用HTML调整图像大小。但问题是加载的图像质量下降。我正试图找到在不损失质量的情况下调整大小的方法 正如安德鲁·汤普森所说 扩展HTMLEditorKit并覆盖公共视图创建(元素) 属于HTMLFactory 从ImageView扩展并覆盖public void paint(图形g,形状a)方法。获取图像并调整其大小 getScaledInstance(WIDTH, HEIGHT, Image.SCALE

我使用
HTMLEditorKit
编写代码,将图像加载到
JEditorPane
中。我知道如何使用HTML调整图像大小。但问题是加载的图像质量下降。我正试图找到在不损失质量的情况下调整大小的方法

正如安德鲁·汤普森所说

扩展
HTMLEditorKit
并覆盖
公共视图创建(元素)
属于
HTMLFactory

ImageView
扩展并覆盖
public void paint(图形g,形状a)
方法。获取图像并调整其大小

getScaledInstance(WIDTH, HEIGHT, Image.SCALE_AREA_AVERAGING)

使用您最喜欢的缩放
提示
并最终绘制。

我不清楚OP所追求的确切用例,但我已经为HTML帮助查看器使用了以下更简单的替代方法–覆盖
JEditorPane
paint()
方法以设置渲染提示:

JEditorPane编辑器=新建JEditorPane(){
@替代公共空白绘制(图形g){
if(图形的g实例2D){
Graphics2D g2=(Graphics2D)g.create();
g2.setRenderingHint(RenderingHints.KEY_插值,
渲染提示值(插值双三次);
超级油漆(g2);
g2.dispose();
}否则{
//打印和其他非图形2D上下文。
超级油漆(g);
}
}
};

例如,这为非整数比例因子hidpi屏幕提供了良好且简单的改进。如果图像是原始图像,则质量仍不理想。对于该用例,正如其他人所指出的,需要一个定制的
HTMLEditorKit
/
htmlFactory
来生成一个定制的
ImageView

可能会这样?我使用了HTMLEditorKit的insertHTML()方法。我需要JEditorPane显示的图像,以便调整其大小。但是我找不到方法。将图像加载到BuffereImage中,然后按照linkby trashgod中的说明调整大小,然后将其放入htmlEditorkit“我知道如何使用HTML调整图像大小”。你知道如何使用纯Java代码平滑地调整图像大小吗?如果没有,请参阅@trashgod的建议。一旦你解决了这个问题,你需要扩展
HTMLEditorKit
并覆盖
HTMLFactory
public View create(Element元素)
方法来使用新的功能(基于我刚才在一个老项目中看到的,该项目增加了对
applet
元素的支持)。