Java旋转图像质量下降
我有这个旋转图像的功能。虽然我失去了质量。有什么变化可以改善它吗Java旋转图像质量下降,java,image-processing,rotation,Java,Image Processing,Rotation,我有这个旋转图像的功能。虽然我失去了质量。有什么变化可以改善它吗 public BufferedImage RotateImage(String imagePath,int degrees) throws IOException{ File file = new File(imagePath); Image image = ImageIO.read(file); BufferedImage img=bufferImage(image, B
public BufferedImage RotateImage(String imagePath,int degrees) throws IOException{
File file = new File(imagePath);
Image image = ImageIO.read(file);
BufferedImage img=bufferImage(image, BufferedImage.TYPE_INT_RGB);
AffineTransform tx = new AffineTransform();
double radians = (Math.PI / 180) * degrees;
double width = img.getWidth()/2;
double height = img.getHeight()/2;
if(degrees != 180){
tx.translate(height,width);
tx.rotate(radians);
tx.translate(-width,-height);
}else{
tx.rotate(radians,width, height);
}
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
img = op.filter(img, null);
return img;
}
AffineTransformOp.TYPE_NEAREST_NEIGHBOR
将始终使所有内容看起来像blergh。尝试使用AffineTransformOp.TYPE_双线性
或AffineTransformOp.TYPE_双三次
AffineTransformOp.TYPE_最近邻
将始终使一切看起来像blergh。尝试使用AffineTransformOp.TYPE_双线性
或AffineTransformOp.TYPE_双三次
。链接显示了每种方法的示例
AffineTransformOp op =
new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
。链接显示了每种方法的示例
AffineTransformOp op =
new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
试着用其中一个
或
尝试使用
或
其他几个提到的仿射变换过滤参数很重要,但它也取决于图像的编码方式。如果是JPEG,.其他几个提到的仿射变换过滤参数很重要,但它也取决于图像的编码方式。如果是JPEG,.请注意,如果您发布了一个,我们可以“尝试”其他大小调整技术。对于带有图像的SSCCE,在代码中生成一个图像,或直接在网络外生成指向图像的热链接,例如my上提供的一个图像。请注意,如果您发布了一个,我们可以“尝试”其他大小调整技术。对于带有图像的SSCCE,在代码中生成一个图像,或直接从网络上热链接到一个图像,例如,my上提供的一个图像。经过很好的尝试,图像完全失去了颜色。它会变成一些奇怪的绿色和蓝色。这听起来更像是图像或缓冲区的颜色空间的问题,而不是转换问题。经过很好的尝试,图像完全失去了颜色。它会变成一些奇怪的绿色和蓝色。这听起来更像是图像或缓冲区的颜色空间的问题,而不是转换问题。经过很好的尝试,图像完全失去了颜色。它变成了一些奇怪的绿色和蓝色。试过了,图像完全失去了颜色。它会变成一些奇怪的绿色和蓝色。