public class Picture {
// TODO Auto-generated constructor stub
public static void resizePNG(String fromFile, String toFile, int outputWidth, int outputHeight,boolean proportion) {
try {
File f2 = new File(fromFile);
BufferedImage bi2 = ImageIO.read(f2);
int newWidth;
int newHeight;
// 判断是否是等比缩放
if (proportion == true) {
// 为等比缩放计算输出的图片宽度及高度
double rate1 = ((double) bi2.getWidth(null)) / (double) outputWidth + 0.1;
double rate2 = ((double) bi2.getHeight(null)) / (double) outputHeight + 0.1;
// 根据缩放比率大的进行缩放控制
double rate = rate1 < rate2 ? rate1 : rate2;
newWidth = (int) (((double) bi2.getWidth(null)) / rate);
newHeight = (int) (((double) bi2.getHeight(null)) / rate);
} else {
newWidth = outputWidth; // 输出的图片宽度
newHeight = outputHeight; // 输出的图片高度
}
BufferedImage to = new BufferedImage(newWidth, newHeight,
BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = to.createGraphics();
to = g2d.getDeviceConfiguration().createCompatibleImage(newWidth,newHeight,
Transparency.TRANSLUCENT);
g2d.dispose();
g2d = to.createGraphics();
Image from = bi2.getScaledInstance(newWidth, newHeight, bi2.SCALE_AREA_AVERAGING);
g2d.drawImage(from, 0, 0, null);
g2d.dispose();
ImageIO.write(to, "png", new File(toFile));
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
System.out.println("Start");
resizePNG("C:\\Documents and Settings\\Administrator\\桌面\\8d9e9c82d158ccbf8b31059319d8bc3eb035414e.jpg", "C:\\Documents and Settings\\Administrator\\桌面\\ell.png",200, 100,true);
System.out.println("OK");
}
}
分享到:
相关推荐
主要介绍了解决java压缩图片透明背景变黑色的问题,需要的朋友可以参考下
在用canvas将png图片转jpeg时,发现透明区域被填充成黑色。 代码如下: XML/HTML Code复制内容到剪贴板 <p>Canvas: style> <p>Base64转码后的图片: <div u00a0id=base64Img></div> ...
EXE文件,批量BMP图片转为PNG透明图片,去掉BMP黑色背景,压缩导出png图片,V1.1
EXE文件,批量BMP图片转为PNG透明图片,去掉BMP黑色背景,VS2019示例源码程序。
java对图片改变大小,png防止变黑,加圆角 圆角外透明
在做view保存图片后,压缩格式转为jpg的时候出现了黑色背景,其根本原因在于透明背景时背景的情况下,转换为jpg的时候会变成黑色背景,原因是PNG支持透明图而 JPG格式不支持透明背景。 我们的解决方案如下: /** * ...
如果你想选入的图片不是上述尺寸,软件会提示你是否自动调整尺寸,调整了尺寸之后会自动生成8个下方的图片以及上方的名片背景图片(此背景图片上方一小部分是黑色的,是正常现象,不用担心)。你进入手机qq后,点...
Sass有用的mixins媒体查询,字体大小,过渡,不透明度,背景图像,字体,占位符,垂直对齐 易于使用的Sass有用的mixins媒体查询,字体大小,过渡,不透明度,背景图像,字体,占位符,垂直对齐 特征 媒体查询 背景...
openSUSE号称史上最华丽的linux桌面版本,用了3个月,界面确实牛X,是我用过的几个linux发行版本中,命令行用的最少的一个,感觉比较...看看,图片格式为PNG,所以上传到图片空间以后,背景色变成黑色,实际是透明的。
openSUSE号称史上最华丽的linux桌面版本,用了3个月,界面确实牛X,是我用过的几个linux发行版本中,命令行用的最少的一个,感觉比较接近windows...图片格式为PNG,上传到图片空间以后,背景色变成黑色,实际是透明的。
类型: 位0:高亮指定颜色 位1:高亮颜色翻转 位2:高亮显示线框 位7:背景透明(最好使用黑色背景) 文件名: *n.??? 格式 n=00-99 高亮颜色由 color HIGHLIGHT=0xrrggbb 指定。 字符可以使用任意字型、字高、...
注: TCP/IP 设置完成后请用 PING 命令验证网络是否连通,如网络不通请尝试检查相应网络设备、重新安装 TCP/IP 协议等手段来解决问题。 2.3产品安装 教师机的安装 1. 插入安装光盘后会自动运行安装程序,进入...
7. 当Flash 导出较短小的事件声音(例如按钮单击的声音)时,最适合的压缩选项是: □ A. ADPCM 压缩选项 □ B. MP3 压缩选项 □ C. Speech 压缩选项 □ D. Raw 压缩选项 8. 对于在网络上播放动画来说,最合适的帧...
//设置黑色背景 glClearDepth(2.0f); // 设置深度缓存 glEnable(GL_DEPTH_TEST); //启动深度测试 glDepthFunc(GL_LEQUAL); //深度小或相等的时候渲染 glShadeModel(GL_SMOOTH); //启动阴影平滑 glEnable(GL_...