代码如下 URL url = new URL("http://www.google.com/intl/en_ALL/images/logo.gif");BufferedImage image = ImageIO.read(url);ByteArrayOutputStream os = new ByteArrayOutputStream();InputStream is = new ByteArra...
个人用到的场景:rgb图片转cmyk
public String rgbToCmyk(String destpath,String extend) {
String back = "Y";
try {
BufferedImage
rgbImage = ImageIO.read(
file
);
BufferedImage
cmykImage = null;
//
InputStream
input = new
File
InputStream
(new
File
("C:/Users/lenovo/Desktop/ISOcoated_v2_300_eci.icc"));
// ColorSpace cpace = new ICC_ColorSpace(ICC_Pro
file
.getInstance(input));
ColorSpace cpace = new ICC_ColorSpace(ICC_Pro
file
.getInstance(ThumbnailatorImageUtil.class.getClassLoader().getResourceAsStream("ISOcoated_v2_300_eci.icc")));
ColorConvertOp op = new ColorConvertOp(rgbImage.getColorModel().getColorSpace(), cpace, null);
cmykImage = op.filter(rgbImage, null);
JAI.create("
file
store", cmykImage, destpath, "TIFF");
System.out.println("-------rgbToCmyk完成------");
} catch (IOException e) {
e.printStackTrace();
return back;
public static void main(String[] args) {
ThumbnailatorImageUtil img = new ThumbnailatorImageUtil("C:\\Users\\lenovo\\Desktop\\1.jpg");
img.rgbToCmyk("C:\\Users\\lenovo\\Desktop\\22.jpg","");
//img.compressToDefineSize("C:\\Users\\lenovo\\Desktop\\2.jpg", 2048,0.99);
springboot读取resouce资源文件
InputStream
logoInput = Thread.currentThread().getContextClassLoader().getResourceAsStream("logo.jpg");
将
InputStream
转换
为image或者
BufferedImage
BufferedImage
image = ImageIO.read(
inputStream
);
将Base64码
转换
为
inputStream
再
转换
为image
java自带工具实
java提供了一个非常方便的图像工具类javax.imageio.ImageIO,用它的javax.imageio.ImageIO.read方法可以很方便的将一个图像文件进行解码。
javax.imageio.ImageIO.read方法有多个重载方法,支持
File
,
InputStream
,URL等参数,但这些方法有可能会在解码过程中使用文件系统做cache,有了磁盘IO势必会影响解码效率,这在性
场景:需要采集视频,拿到这个视频之后,一帧一帧的图片转成base64的数据,调用python写的算法处理,然后返回给java程序,之后处理下面的业务代码
通过V4L2,使用java可以拿到BufferImage对象,然后
转换
成
InputStream
使用java拿到摄像头驱动采集的视频,加入v4l2依赖的jar包
<dependency>
<groupId...
在一次做考试系统的时候,有一个场景是考生开考前需要通过系统做拍照并进行脸部信息的比对;脸部信息的计算使用FACE++(旷视科技)的接口,但是发现查看拍照的照片信息是,考生的照片显示十分模糊,对比度变低,有验证的泛红!经过检查发现报错在Oracle 数据库的blob 字段直接查看信息是正常的,再看看在程序里生成的图片缓存文件是模糊的图像;查看生成图片的代码,十分简单,如下:
//生成图片返回图片路
将
BufferedImage
转换
为
InputStream
的方法如下:
1.使用ByteArrayOutputStream将
BufferedImage
转换
为字节数组。
2.使用ByteArray
InputStream
将字节数组
转换
为
InputStream
。
示例代码如下:
```java
BufferedImage
image = ImageIO.read(new
File
("image.jpg"));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", baos);
InputStream
is = new ByteArray
InputStream
(baos.toByteArray());
其中,image.jpg是要
转换
的图片文件名,可以根据实际情况修改。