Java JAIで画像をスケーリングする必要があります。 ...Javaによる画像のスケーリングJAI
どれを
private static RenderedOp scale(RenderedOp image, float scale) {
ParameterBlock scaleParams = new ParameterBlock();
scaleParams.addSource(image);
scaleParams.add(scale).add(scale).add(0.0f).add(0.0f);
scaleParams.add(Interpolation.getInstance(Interpolation.INTERP_BICUBIC_2));
// Quality related hints when scaling the image
RenderingHints scalingHints = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
scalingHints.put(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
scalingHints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
scalingHints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
scalingHints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
scalingHints.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
scalingHints.put(JAI.KEY_BORDER_EXTENDER, BorderExtender.createInstance(BorderExtender.BORDER_COPY));
return JAI.create("scale", scaleParams, scalingHints);
}
残念ながら、これは私が頻繁に0.5未満のスケールファクタで画像を拡大縮小する必要が特にあるため、非常に悪い結果につながる:今時点で、私は次のコードを使用します助言?
この行が見えます疑似scaleParams.add(scale).add(scale).add(0.0f).add(0.0f); – whatnick
あなたが悪いと意味するものを説明するためのいくつかのサンプル結果は、あなたが経験しているアーティファクトのタイプを特定するのにも役立ちます。 – whatnick
「AffineTransformOp」を使用しない理由は何ですか?参照してくださいhttp://stackoverflow.com/questions/4216635 – trashgod