Java實(shí)現(xiàn)bmp和jpeg圖片格式互轉(zhuǎn)
Bmp轉(zhuǎn)Jpeg
public static String bmp2Jpeg(String filePath, String outPath) {
?? ?try {
?? ??? ?long start = System.currentTimeMillis();
?? ??? ?// 加載bmp圖片
?? ??? ?File file = new File(filePath);
?? ??? ?Image img = ImageIO.read(file);
?? ??? ?BufferedImage tag = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
?? ??? ?tag.getGraphics().drawImage(img.getScaledInstance(img.getWidth(null), img.getHeight(null), Image.SCALE_SMOOTH), 0, 0, null);
?? ??? ?// 輸出為Jpeg
?? ??? ?FileOutputStream out = new FileOutputStream(outPath);
?? ??? ?// JPEGImageEncoder可適用于其他圖片類(lèi)型的轉(zhuǎn)換
?? ??? ?JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
?? ??? ?encoder.encode(tag);
?? ??? ?out.close();
?? ??? ?
?? ??? ?log.info("bmp 轉(zhuǎn) JPEG,共耗時(shí): ?" + (System.currentTimeMillis() - start) + " 毫秒");
?? ??? ?return outPath;
?? ?} catch (IOException e) {
?? ??? ?e.printStackTrace();
?? ?}
?? ??? ?return outPath;
?? ?}Jpeg轉(zhuǎn)Bmp
public static void jpeg2Bmp(String inputPath, String outputPath) {
try {
long start = System.currentTimeMillis();
// 加載Jpeg圖片資源
FileImageInputStream fiis = new FileImageInputStream(new File(inputPath));
FileImageOutputStream fios = new FileImageOutputStream(new File(outputPath));
ImageReader jpegReader = null;
Iterator<ImageReader> it1 = ImageIO.getImageReadersByFormatName("jpeg");
if (it1.hasNext()) {
jpegReader = it1.next();
}
jpegReader.setInput(fiis);
ImageWriter bmpWriter = null;
Iterator<ImageWriter> it2 = ImageIO.getImageWritersByFormatName("bmp");
if (it2.hasNext()) {
bmpWriter = it2.next();
}
bmpWriter.setOutput(fios);
BufferedImage br = jpegReader.read(0);
bmpWriter.write(br);
fiis.close();
fios.close();
log.info("jpeg 轉(zhuǎn) bmp,共耗時(shí):" + (System.currentTimeMillis() - start) + " 毫秒");
} catch (IOException e) {
e.printStackTrace();
}
}
到此這篇關(guān)于Java實(shí)現(xiàn)bmp和jpeg圖片格式互轉(zhuǎn)的文章就介紹到這了,更多相關(guān)Java實(shí)現(xiàn)bmp和jpeg內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring boot自定義404錯(cuò)誤信息的方法示例
這篇文章主要介紹了spring boot自定義404錯(cuò)誤信息的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
解決mybatis plus 分頁(yè)查詢有條數(shù),total和pages都是零的問(wèn)題
這篇文章主要介紹了解決mybatis plus 分頁(yè)查詢有條數(shù),total和pages都是零的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
Java數(shù)據(jù)結(jié)構(gòu)之紅黑樹(shù)的實(shí)現(xiàn)方法和原理詳解
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之紅黑樹(shù)的實(shí)現(xiàn)方法和原理,紅黑樹(shù)是一種特殊的二叉查找樹(shù),每個(gè)結(jié)點(diǎn)都要儲(chǔ)存位表示結(jié)點(diǎn)的顏色,或紅或黑,本文將通過(guò)示例為大家詳細(xì)講講紅黑樹(shù)的原理及實(shí)現(xiàn),感興趣的朋友可以了解一下2024-02-02
Java反射設(shè)置/獲取對(duì)象屬性值三種方式
這篇文章主要給大家介紹了關(guān)于Java反射設(shè)置/獲取對(duì)象屬性值的三種方式,反射機(jī)制的用途非常多,比如獲取方法,屬性名和屬性值等,甚至可以獲取標(biāo)簽等標(biāo)簽屬性,需要的朋友可以參考下2023-11-11
Java實(shí)現(xiàn)導(dǎo)出ZIP壓縮包的方法
這篇文章主要介紹了Java實(shí)現(xiàn)導(dǎo)出ZIP壓縮包的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Java實(shí)現(xiàn)直接插入排序與折半插入排序的示例詳解
這篇文章主要為大家詳細(xì)介紹了插入排序中兩個(gè)常見(jiàn)的排序:直接插入排序與折半插入排序。本文用Java語(yǔ)言實(shí)現(xiàn)了這兩個(gè)排序算法,感興趣的可以學(xué)習(xí)一下2022-06-06

