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可適用于其他圖片類型的轉(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring boot自定義404錯(cuò)誤信息的方法示例
這篇文章主要介紹了spring boot自定義404錯(cuò)誤信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09解決mybatis plus 分頁查詢有條數(shù),total和pages都是零的問題
這篇文章主要介紹了解決mybatis plus 分頁查詢有條數(shù),total和pages都是零的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11Java數(shù)據(jù)結(jié)構(gòu)之紅黑樹的實(shí)現(xiàn)方法和原理詳解
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之紅黑樹的實(shí)現(xiàn)方法和原理,紅黑樹是一種特殊的二叉查找樹,每個(gè)結(jié)點(diǎn)都要儲存位表示結(jié)點(diǎn)的顏色,或紅或黑,本文將通過示例為大家詳細(xì)講講紅黑樹的原理及實(shí)現(xiàn),感興趣的朋友可以了解一下2024-02-02Java實(shí)現(xiàn)導(dǎo)出ZIP壓縮包的方法
這篇文章主要介紹了Java實(shí)現(xiàn)導(dǎo)出ZIP壓縮包的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11Java實(shí)現(xiàn)直接插入排序與折半插入排序的示例詳解
這篇文章主要為大家詳細(xì)介紹了插入排序中兩個(gè)常見的排序:直接插入排序與折半插入排序。本文用Java語言實(shí)現(xiàn)了這兩個(gè)排序算法,感興趣的可以學(xué)習(xí)一下2022-06-06