日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RGBA 图片格式转换 RGB 无损

發布時間:2023/12/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RGBA 图片格式转换 RGB 无损 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

拿到的圖片是webp格式的,然后系統無法處理。只能使用google code的dwebp工具,把圖片轉成png或者jpg的。

這一步是ok了。

但是轉成的圖片是RGBA的,系統只能處理RGB。。。

報了下面的錯:

java.lang.ArrayIndexOutOfBoundsException: 3at java.awt.image.ComponentSampleModel.getPixel(ComponentSampleModel.java:750)at java.awt.image.Raster.getPixel(Raster.java:1519)at net.semanticmetadata.lire.imageanalysis.features.global.AutoColorCorrelogram.hsvImage(AutoColorCorrelogram.java:230)at net.semanticmetadata.lire.imageanalysis.features.global.AutoColorCorrelogram.extract(AutoColorCorrelogram.java:242)at net.semanticmetadata.lire.builders.GlobalDocumentBuilder.extractGlobalFeature(GlobalDocumentBuilder.java:199)at net.semanticmetadata.lire.builders.GlobalDocumentBuilder.getGlobalDescriptorFields(GlobalDocumentBuilder.java:217)at net.semanticmetadata.lire.builders.GlobalDocumentBuilder.createDescriptorFields(GlobalDocumentBuilder.java:265)at net.semanticmetadata.lire.builders.GlobalDocumentBuilder.createDocument(GlobalDocumentBuilder.java:287)at net.semanticmetadata.lire.sampleapp.Indexer.main(Indexer.java:121)

還得把RGBA轉成RGB格式。

試了下面的方法:

1,python 的pillow庫,有損;

2,imageMagick(http://www.imagemagick.org/script/index.php),有損;

最后找到了這個:https://github.com/dermotte/LIRE/blob/master/src/main/docs/developer-docs/docs/imageread.md

也就是使用imageJ這個庫

<!-- https://mvnrepository.com/artifact/net.imagej/ij --><dependency><groupId>net.imagej</groupId><artifactId>ij</artifactId><version>1.49c</version></dependency>

代碼:

package com.liyao;import ij.ImagePlus; import ij.process.ImageConverter;import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException;public class RGBConvert {public static void main(String args[]){BufferedImage oldRGBA = openImage("src/main/resources/whatsapp.png");File outputfile = new File("E:\\saved.png");try {ImageIO.write(oldRGBA, "png", outputfile);} catch (IOException e) {e.printStackTrace();}}public static BufferedImage openImage(String path) {ImagePlus imgPlus = new ImagePlus(path);// converting the image to RGBImageConverter imageConverter = new ImageConverter(imgPlus);imageConverter.convertToRGB();// returning the BufferedImage instancereturn imgPlus.getBufferedImage();} }

親測無損。下面是結果:

這是RGBA 的圖片:

我的cbir系統無法處理。

下面是使用python處理以后的RGB:

代碼:

import PIL.Image as Imagergba_image = Image.open('wechat.png') rgba_image.save('new.png')

這個圖片會報之前的錯。

下面是使用imageJ處理以后的RGB:


沒有報錯。

總結

以上是生活随笔為你收集整理的RGBA 图片格式转换 RGB 无损的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。