我正在使用(org.imgscalr.Scalr)库来调整某些图像的大小,但是在调整大小后,背景变为红色.我的代码是:
BufferedImage imagemPng = ImageIO.read(image);
BufferedImage imagemJpg = Scalr.resize(imagemPng, Method.QUALITY, 1920, 937);
Run Code Online (Sandbox Code Playgroud)
你能帮助我吗?
谢谢
我正在尝试使用两个库(thumbnitor和imgscalr)转换图像(下面的url).我的代码适用于大多数图像,除了转换后的一些图像具有粉红色/红色色调.
我想了解原因并欢迎任何建议.
注意 - 此图像的图像类型是5即BufferedImage.TYPE_3BYTE_BGR,我使用的是Java 7
Thumbnails.of(fromDir.listFiles())
.size(thumbnailWidth, thumbnailHeight)
.toFiles(Rename.SUFFIX_HYPHEN_THUMBNAIL);
Run Code Online (Sandbox Code Playgroud)
BufferedImage bufferedImage = ImageIO.read(file);
final BufferedImage jpgImage;
LOG.debug("image type is =[{}] ", bufferedImage.getType());
BufferedImage scaledImg = Scalr.resize(bufferedImage, Method.ULTRA_QUALITY, thumbnailWidth, thumbnailHeight, Scalr.OP_ANTIALIAS);
File thumbnailFile = new File(fromDirPath + "/" + getFileName(file.getName()) +THUMBNAIL_KEYWORD + ".png");
ImageIO.write(scaledImg, getFileExtension(file.getName()), thumbnailFile);
bufferedImage.flush();
scaledImg.flush();
Run Code Online (Sandbox Code Playgroud) 我尝试使用AffineTransform和Scalr.resize调整缓冲图像的大小
这是我的两个代码.
使用Scalr.resize:
BufferedImage buff = robot.createScreenCapture(new Rectangle(bufx,bufy,bufwidth,bufheight)); // x-coord, y-coord, width, height
BufferedImage scrCapt = Scalr.resize(buff, Method.BALANCED, scrwidth, scrheight);
Run Code Online (Sandbox Code Playgroud)
使用AffineTransform:
BufferedImage buff = robot.createScreenCapture(new Rectangle(bufx,bufy,bufwidth,bufheight)); // x-coord, y-coord, width, height
BufferedImage scrCapt = new BufferedImage(bufwidth,bufheight,BufferedImage.TYPE_INT_ARGB);
AffineTransform atscr = new AffineTransform();
atscr.scale(aspectRatioWidth,aspectRatioHeight);
AffineTransformOp scaleOp = new AffineTransformOp(atscr, AffineTransformOp.TYPE_BILINEAR);
scrCapt = scaleOp.filter(buff, scrCapt);
Run Code Online (Sandbox Code Playgroud)
变量已在类内部的开头声明:
static int bufx = 0;
static int bufy = 0;
static int bufwidth = 1;
static int bufheight = 1;
static int scrwidth = 0;
static int …
Run Code Online (Sandbox Code Playgroud) 我试图使用imgscalr库与以下裁剪方法:
Scalr.crop(image, height, width);
Run Code Online (Sandbox Code Playgroud)
但它始终从图像的左上角开始播种.我可以调整此行为以从右下角或中心开始吗?
我是ImgScalr API的新手.我需要将我的图像调整为不同的视图,其中一个是移动视图,第二个是缩略图视图.我已经使用了resize方法,但有一个疑问.哪个是最好的调整大小方法,从可用的多个选项调整图像大小,以保持适当的宽高比(如图像不会变得模糊)
我注意到的一件事是每个resize方法都接受一个targetSize参数.如何指定此字段可确保图像的宽高比不会受到影响.
考虑到我需要生成一个大小约为2 MB的输入图像的2 KB缩略图视图,resize方法的理想参数应该是什么?
由于缺乏足够的文档和示例,我有点困惑.