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;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443594.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 引用队列_Java中管理资源的引用队列相关原理解析

当对象改变其可达性状态时,对该对象的引用就可能会被置于引用队列(reference queue)中。这些队列被垃圾回收器用来与我们的代码沟通有关对象可达性变化的情况。这些队列是探测可达性变化的最佳方式,尽管我们也可以通过检查get方法的返回值是不是null来探…

Tomcat 替换项目图标

1.首先制作一个32*32像素的图标,命名为favicon.ico这里名称必须是和Tomcat的webapps下的ROOT下的一样。 2.把制作好的图标放到你要部署的Web项目的images目录下,如果你的Web项目有过滤器等,要给后缀名为.ico的图标放行。 3.最后你就可以在你需…

hp 导出日志 远程管理卡_惠普服务器远程管理卡安装详解

可以远程管理服务器。带惠普基于Web的网络资源管理和性能监视工具HP Toptools惠普远程管理卡的主要功能是可以实现对服务器的远程监控,其中包括察看日志、远程诊断、远程开/关机、重启等等。基于惠普远程管理卡的重要功能,本文将着重介绍惠普远程管理卡的…

java 错误登陆次数_纯java代码实现登陆次数验证,登陆错误5次之后锁定30分钟

本方法因为是根据思路纯手写,代码可以再简化,功能尝试没问题,最主要就是在登陆验证中的逻辑,checkLogin()方法是登录前的验证,而真正的登陆方式采用的是Shiro,若不是采用Shiro登陆,将该逻辑采用…

java 监听器 分类_java过滤器和监听器详解 分类: 学习专区

过滤器1、Filter工作原理(执行流程)当客户端发出Web资源的请求时,Web服务器根据应用程序配置文件设置的过滤规则进行检查,若客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头和请求数据进行检查或改动&#x…

linux java启动脚本文件_不错的linux下通用的java程序启动脚本

#!/bin/sh#该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用,#也可以作为启动java程序的独立脚本来使用。##Author: tudaxia.com, Date: 2011/6/7##警告!!!:该脚本stop部分使用系统kill命令来强制终止指定的java程序进程。…

linux心跳包检测代码_OpenSSL心跳包越界读敏感信息泄漏漏洞

发布日期:2014-04-10CVE ID:CVE-2014-0160受影响的软件及系统:OpenSSL 1.0.1-OpenSSL 1.0.1fOpenSSL 1.0.2-betaOpenSSL 1.0.2-beta1未受影响的软件及系统:OpenSSL 0.9.8OpenSSL 1.0.0OpenSSL 1.0.1gOpenSSL 1.0.2-bet…

mysql数据库主要负责存储_mysql数据库自带数据库介绍

show databases;查看mysql自带数据库有information_schema,mysql, performance_schema, testinformation_schema数据库有40张表,如下。在MySQL中,把 information_schema 看作是一个数据库,确切说…

python 编辑数学公式_Jupyter快速编辑高大上数学公式 泰勒展开式

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。人工智能的基础是机器学习,而通过之前的几篇博客了解到,机器学习的基础是数学…

用java写一个日历_使用JAVA写一个简单的日历

JAVA写一个简单的日历import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Scanner;/*** 制作一个简单的日历** author 这…

MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)

<span style"font-family: Microsoft YaHei; font-size: 14px;">MySQL定时任务event</span> 由于一些业务需求&#xff0c;我们可能需要定时清除数据库一些废弃的数据&#xff0c;可以使用mysql的存储过程和事件来完成。 下面例子定时清除日志表tbl_base…

python慢为什么用的人还很多_为什么是所有人比python标准慢得多吗?

通过使用生成器理解而不是列表理解&#xff0c;可以使这两个函数更快、更具可比性。在s """import numpy as np;x, y np.random.rand(1000),np.random.rand(1000);(all((x[i], y[i])) for i in range(1000)) """timeit.timeit(s,number1000)0.…

Java规定构造方法和类名相同_不是说:java构造方法和类名一定要相同吗?为什么我看见很多构造方法跟类名不完全一致啊?隐藏了什么吗?...

比如以下代码。类名不是TestCar_EX才对吗&#xff1f;为什么构造方法名却是Car&#xff1f;我看见很多教程都是这么写的。晕。。。。。。。。。。。到底怎么样才是对的啊&#xff1f;public class TestCar_EX {public static void main(String[] args) {Car c1 new Car("…

java pdf stamper_PDFStamper在几个PDF文件上失败(itext 5.5.1)

我尝试使用数据填充PDF表单并获得PDFStamper(itext版本5.5.1)以处理多个PDF文件&#xff0c;但在某些情况下它总是失败。示例代码&#xff1a;PdfReader reader new PdfReader(new FileInputStream("C:/Temp/source.pdf"));PdfStamper stamper new PdfStamper(read…

用猎物皮毛换酒喝java_荒野大镖客2三星毛皮狩猎技巧分享 各种类猎物三星皮毛获取方法...

荒野大镖客2三星毛皮怎么获得&#xff1f;想必很多朋友都还不是很清楚吧&#xff0c;所以呢小编今天给大家带来的就是荒野大镖客2三星毛皮狩猎技巧分享&#xff0c;需要的朋友还不快进来看看&#xff1f;三星毛皮狩猎技巧分享猎物体型分水岭建议以狐狸类为例。(1)中型猎物[比狐…

Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用...

近来由于项目需要&#xff0c;需要用到手机短信验证码的功能&#xff0c;其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口&#xff0c;下面我把我在项目中用到的记录一下&#xff0c;以便给大家提供个思路&#xff0c;由于本人的文采有限&#xff0c;还请大…

java中的udp丢包_UDP丢包问题

wxbcrefut&#xff1a;谢谢楼主分享&#xff0c;最近也遇到这种问题&#xff0c;我在虚机里测试(配置为8核16G内存)&#xff0c;1s接受2W条数据丢包就特别严重&#xff0c;我还没有处理只是接受而已&#xff0c;不知道问题出在哪&#xff0c;求指教我是用java写的&#xff0c;代…

java人体识别_用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍...

items results.getAnalyseList();// 开发者根据需要处理识别结果&#xff0c;例如&#xff0c;在此方法中进行相似度计算&#xff0c;从而在检测到特定姿势后进行拍照等操作。// 需要注意&#xff0c;这里只对检测结果进行处理&#xff0c;不可调用ML Kit提供的其他检测相关接…

java中select的用法_mybaties中select用法,以及常用增删改查

查询语句是使用 MyBatis 时最常用的元素之一select元素配置细节如下属性描述取值默认id在这个模式下唯一的标识符&#xff0c;可被其它语句引用parameterType传给此语句的参数的完整类名或别名resultType语句返回值类型的整类名或别名。注意&#xff0c;如果是集合&#xff0c;…

jpa java.util.map_使用JPA存储Map String,String

JPA 2.0通过ElementCollection注释可以支持原语集合&#xff0c;您可以将其与java.util.Map集合支持一起使用。这样的事情应该起作用&#xff1a;Entitypublic class Example {Id long id;// ....ElementCollectionMapKeyColumn(name"name")Column(name"value&q…