java上传png_java上传png图片出现红色背景
java图片上传出现红色背景
java图片服务器上传图片都很正常,唯独上传png图片时,png图片变成红色背景
原因是读取上传数据时用的是ImageIO.read(inputstream)方法
public static BufferedImage getImages(byte[] data) throws IOException {
ByteArrayInputStream input = new ByteArrayInputStream(data);
return ImageIO.read(input);
}
解决办法是:换成jdk中的Toolkit来读取上传的数据
Image src=Toolkit.getDefaultToolkit().getImage(file.getPath());
BufferedImage image=BufferedImageBuilder.toBufferedImage(src); //Image to BufferedImage
或:
Image imageTookit = Toolkit.getDefaultToolkit().createImage(bytes);
BufferedImage cutImage = toBufferedImage(imageTookit);
toBufferedImage():
public static BufferedImage toBufferedImage(Image image) {
if (image instanceof BufferedImage) {
return (BufferedImage) image;
}
// This code ensures that all the pixels in the image are loaded
image = new ImageIcon(image).getImage();
BufferedImage bimage = null;
GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
try {
int transparency = Transparency.OPAQUE;
GraphicsDevice gs = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gs.getDefaultConfiguration();
bimage = gc.createCompatibleImage(image.getWidth(null),
image.getHeight(null), transparency);
} catch (HeadlessException e) {
// The system does not have a screen
}
if (bimage == null) {
// Create a buffered image using the default color model
int type = BufferedImage.TYPE_INT_RGB;
bimage = new BufferedImage(image.getWidth(null),
image.getHeight(null), type);
}
// Copy image to buffered image
Graphics g = bimage.createGraphics();
// Paint the image onto the buffered image
g.drawImage(image, 0, 0, null);
g.dispose();
return bimage;
}
java上传png_java上传png图片出现红色背景相关推荐
- java获取ajax上传的文件,Java使用Ajax异步上传文件
相关代码示例: html代码片段: 名称 class="layui-input"> 描述 文件 请选择配置文件 立即提交 重置 js代码片段: //上传配置文件 $(&quo ...
- java语言 文件上传,java中实现文件上传的方法
java中实现文件上传的方法 发布时间:2020-06-19 10:29:11 来源:亿速云 阅读:86 作者:Leah 这篇文章给大家分享的是java中实现文件上传的方法,相信大部分人都还没学会这个 ...
- Java通过FTP服务器上传下载文件的方法
本文介绍了如何使用Apache Jakarta Commons Net(commons-net-3.3.jar)基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作 ...
- flex java red5_使用 Flex 和Java servlets 将文件上传到 RED5 服务器的步骤
本文使用一个 demo 来演示如何使用 Flex 和 Java servlets 上传一个任意类型的本地文件到 RED5 服务器.使用的是 Flex 的 FileReference 接口,该接口可以对 ...
- java里面的文件上传与下载
java里面的文件上传与下载 文件的上传与下载主要用到两种方法: 1.方法一:commons-fileupload.jar commons-io.jar apache的commons-fileuplo ...
- java实现多文件上传至本地服务器
转载自 java实现多文件上传至本地服务器 博主最近在做一个内网项目,内部可以访问外部数据,但是外部访问不了内部数据,这也就造成了可能文件无法上传,所以博主另辟蹊径,在本地服务器上建立一个文件夹专门 ...
- java读excel乱码,【java 项目中,上传的excel打开时无法正常打开,显示乱码 ,怎样可以正常打开,】java读取excel乱码...
java 项目中,上传的excel打开时无法正常打开,显示乱码 ,怎样可以正常打开, 1.转换格就是将受损的Excel XP簿另存格式选为SYLK.如果可以打开受件,只是不能进行各种编辑和打印操作,那 ...
- java 上传图片后没法立马显示出来_SpringMVC多个文件上传及上传后立即显示图片功能...
多文件上传就是改良一个方法把MultipartFile类换成CommonsMultipartFile类,因为上传多个文件用数组方式的话MultipartFile类不能初始化,它不支持数组 packag ...
- java云服务器怎么上传文件大小,java云服务器怎么上传文件大小
java云服务器怎么上传文件大小 内容精选 换一换 SAP S/4HANA实例节点数据磁盘需要进行格式化,并挂载到相应的目录后,才能被正常使用.登录待安装SAP S/4HANA的云服务器"s ...
最新文章
- 李开复对话Yoshua Bengio:AI技术的下一个突破
- MATLAB 图像函数(第五章) 图像空间变换和图像配准
- 关于PostMessage后台发送组合键
- perl one line
- 一个基于特征向量的近似网页去重算法
- Ubuntu 14.04 desktop 不能安装 openssh-server解决方法
- swun 1766 我的悲剧不可能那么好数
- CVE-2020-11946 ManageEngine OpManager 命令执行
- 纵横算法之五:想学算法,时间不够怎么办
- CentOS 7安装WRF,SMOKE,CMAQ
- rocketdock 打不开 有进程
- 飞凌单片机解密_GX28E01单片机解密
- Emoj cheat sheet
- 关于CASIO系列可编程计算器在公路施工测量中的应用
- android平板下架,小米平板电脑下架 号称最好用的安卓平板成绝唱
- C语言学习笔记11-结构体(struct、结构作为函数参数、结构数组)、联合体/共用体typedef; union(大、小端序)
- IE选项注册表控制大全
- JDBC详解(四):操作BLOB类型字段(超详解)
- Ubuntu桌面文件管理权限如何获得
- 怎么人像抠图?这几种抠图方法一看就会
热门文章
- java中除了跟数据相关的知识_Java的基本数据类型及知识介绍
- 手写tomcat socket closed_【消费电子】:重在阅读,新增手写 BOOX Nova Pro 体验评测...
- java map 实现 序列化,MapReduce序列化
- 什么影响oracle io,Oracle IO问题解析
- PHP实训笔记,【学习笔记19】实验吧 让我进去
- discuz viewthread.php,修改discuz论坛的标题header和footer
- 游戏详细设计说明书_宜家的说明书设计脑洞太大了!
- _Linux中功能强大的截图工具 - Flameshot
- 【转】医学影像处理相关知识整理(一)
- 【转】HTTP协议中PUT和POST使用区别