宣言android.graphics.Bitmap.createScaledBitmap是
public static Bitmap createScaledBitmap
(Bitmap src, int dstWidth, int dstHeight, boolean filter)
Run Code Online (Sandbox Code Playgroud)
但是,文档没有解释任何参数.所有这些都非常明显,除了boolean filter.有谁知道它的作用?
我有10,000张照片需要调整大小,所以我有一个Java程序来做.不幸的是,图像的质量很差,我无法访问未压缩的图像.
import java.awt.Graphics;
import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
* This class will resize all the images in a given folder
* @author
*
*/
public class JavaImageResizer {
public static void main(String[] args) throws IOException {
File folder = new File("/Users/me/Desktop/images/");
File[] listOfFiles = folder.listFiles();
System.out.println("Total No of Files:"+listOfFiles.length);
BufferedImage img = null;
BufferedImage tempPNG = null;
BufferedImage tempJPG = null;
File newFilePNG = null;
File newFileJPG = …Run Code Online (Sandbox Code Playgroud) 我想在尺寸大于它的画布上绘制位图.我可以使用canvas.drawBitmap(bitmap,null,destRect,null); 但是如果源图像比目标矩形小得多,则结果是像素化的,质量很差.
如何使用双线性或双三次重采样绘制我的位图?
任何帮助将不胜感激,thanx.
我正在缩小一些位图并获得低质量的结果.我尝试了Bitmap#createScaledBitmap和Canvas#drawBitmap方法.在第一个中设置过滤器参数,在第二个的Paint对象中设置过滤器标志,没有显示出明显的差异.
我试过在这些问题中建立的解决方案
还有一些.
正如某人所说的那样,createScaledBitmap或Paint对象中的过滤器标志启用了双三次插值算法.但是,它没有任何区别.使用GIMP cubic(实际上是双三次),得到的图像比Android实现要好得多.
这里的API级别是19.