上代码:

/**

* 按照比例缩放

*

* @param sourceFile

* @param targetFile

*/

public void zoom(File sourceFile, File targetFile, int wh,int yh,boolean circular) {

try {

BufferedImage image = ImageIO.read(sourceFile);

BufferedImage newImage = zoom(image, (int) Math.ceil(wh ), (int) Math.ceil(yh));

//去除背景黑底

newImage.getGraphics().fillRect( 0, 0 , wh, yh);

newImage.getGraphics().drawImage(image.getScaledInstance(wh, yh,Image.SCALE_SMOOTH), 0, 0, null);

String formatName = getImageFormatName(sourceFile);

if (formatName == null || formatName.length() == 0) {

return;

}

//设置图片变成圆形

if(circular){

newImage=convertCircular(newImage,wh);

}

ImageIO.write(newImage, formatName, targetFile);

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 传入的图像必须是正方形的 才会 圆形 如果是长方形的比例则会变成椭圆的

*

* 图片裁圆

* @return

* @throws IOException

*/

public static BufferedImage convertCircular(BufferedImage bi1,int min) throws IOException {

//BufferedImage bi1 = ImageIO.read(sourceFile);

// 这种是黑色底的

//BufferedImage bi2 = new BufferedImage(bi1.getWidth(), bi1.getHeight(), BufferedImage.TYPE_INT_RGB);

// 透明底的图片

BufferedImage bi2 = new BufferedImage(min, min, BufferedImage.TYPE_4BYTE_ABGR);

Ellipse2D.Double shape = new Ellipse2D.Double(0, 0,min,min);

Graphics2D g2 = bi2.createGraphics();

g2.setClip(shape);

// 使用 setRenderingHint 设置抗锯齿

g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

g2.drawImage(bi1, 0, 0, null);

// 设置颜色

g2.setBackground(Color.green);

g2.dispose();

return bi2;

}

newImage.getGraphics().fillRect( 0, 0 , wh, yh);

newImage.getGraphics().drawImage(image.getScaledInstance(wh, yh,Image.SCALE_SMOOTH), 0, 0, null);

这两行代码是为了背景去黑底起作用的

java 图片 变黑_JAVA 压缩图片导致背景变黑相关推荐

  1. java 使用Thumbnailator 上传图片 并压缩图片大小

    http://www.cnblogs.com/miskis/p/5500822.html java 上传图片 并压缩图片大小 Thumbnailator 是一个优秀的图片处理的Google开源Java ...

  2. java采用降低图片分辨率大小来压缩图片大小

    我看了网上大多数对图片的压缩都是基于对图片width和hight进行裁剪来降低图片实际大小,但这种方式容易导致图片内容的丢失,所以推荐大家采用以下这种方式 import java.awt.image. ...

  3. thumbnails 变黑_phpcms v9图片生成缩略图变成黑色解决方法

    今天客户反映,上传的图片生成缩略图有的图片变成黑色, 出现问题就百度了一下,有不少网友也遇到这样的问题,但是官方论坛也没有给出解决办法,那还得靠自己解决了,于是就研究phpcms v9 图片压缩代码. ...

  4. 保存图片到相册及图片变黑问题

    今天写一下保存图片到手机相册的功能! 整个保存图片的代码如下: public void saveImageToGallery(Context context, Bitmap bmp) {if (!En ...

  5. java制作水效果_java实现图片加水印效果

    图片加水印代码,这些代码不常用,但是用到的时候需要注意的地方也挺多的,每次都重写比较麻烦,记下来备忘.代码是图片加水印的一般流程,可根据实际项目需要自行修改. 注:代码在JPG和PNG格式图片下测试通 ...

  6. java exif 语言编码_Java读取图片EXIF信息的代码

    Java读取图片EXIF信息的代码 本文实例讲述了Java读取图片EXIF信息的方法.分享给大家供大家参考.具体分析如下: 首先介绍一下什么是EXIF,EXIF是Exchangeable Image ...

  7. java图片转字符_java实现图片转字符图(看的过去的亚子)

    普通图片转换为ASSIC码灰度图片 原图: 效果图: 转换方法 读取图片文件到BufferedImage 读取BufferedImage中的RGB值 将RGB三色值按照(0.3,0.59,0.11)权 ...

  8. java 给图片加马赛克_java处理图片--图片的缩放,旋转和马赛克化

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 这是我自己结合网上的一些资料封装的java图片处理类,支持图片的缩放,旋转,马赛克化.(转 ...

  9. java 图片上写字_java 在图片上写字,两个图片合并的实现方法

    实例如下: package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; i ...

  10. java 两张图片合并_java 在图片上写字,两个图片合并的实现方法

    实例如下: package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; i ...

最新文章

  1. java二级下拉菜单_航菜单栏中的二级下拉菜单
  2. mysql存储过程遍历新增_MySQL存储过程:内部调用存储过程、存储过程实现遍历数据库建表以及修改字段...
  3. java params 关键字_转载------C# ref 和 out ,params关键字的用法
  4. 【maven插件】maven-help-plugin
  5. flink下载以及兼容性问题
  6. php 网站上传大小限制吗,配置PHP程序网站上传文件大小的限制!
  7. javascript Date对象
  8. Ubuntu安装JDK,搭建java环境
  9. 李宏毅机器学习笔记——深度学习
  10. OpenAPI Specification
  11. excel单元格内容拆分_Excel | 单元格内容换行的两种方法
  12. iDLG Improved Deep Leakage from Gradients
  13. 如何用计算机打出字,两个字中间的点怎么打出来?
  14. UL-1973-2022 储能电池安全标准
  15. 解决Pycharm装Illuminated Cloud之后无法创建项目的思路_艾孜尔江撰稿
  16. VS中调试QT项目报错合集
  17. Symfony 初步了解
  18. linux 从命令行启动,硬盘安装Linux和从Grub命令行启动操作系统
  19. 深度学习和机器博弈如何结合_对抗机器学习的博弈论方法
  20. kali 火路的使用

热门文章

  1. 叶俊:让能量爆棚的秘诀
  2. 如何简单有效的管理企业数据安全
  3. cx_oracle clob字段入库报错ORA-24816: Expanded non LONG bind data supplied after actual LONG or LOB column
  4. java海贼王_Java 学以致用--为我的海贼王统一命名
  5. ibm tivoli_带有Tivoli Access Manager的SAP NetWeaver Application Server ABAP的单点登录
  6. 小草音乐播放器[emlog插件]
  7. win10笔记本电脑外接USB键盘开机失灵解决方案
  8. android 9 vxp 闪退,XPrivacyLua限制了权限的应用无法打开
  9. .ul>li 和 .ul li的区别
  10. Logstash mutate 插件