最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java如何處理圖片保存之后變紅色的問題

 更新時間:2023年11月18日 10:05:25   作者:請告訴他  
這篇文章主要介紹了Java如何處理圖片保存之后變紅色的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

問題

原圖如下

上傳之后效果如下

馬賽克是我打的,別人家的logo,避免廣告之嫌,系統(tǒng)審核不過

然而其他圖片并不存在這個問題,如

 這張,不存在這樣的問題

兩張圖片不同點在于正常的為jpg,變色的為png

后面經過不同的嘗試后發(fā)現,透明的PNG圖、改alpha通道或四色圖等都會引起以上問題

解決辦法

有兩種,這里分享比較好用的一種,方便快捷,復制粘貼就能用

  // 這里是直接根據url讀取圖片
    public static BufferedImage getBufferedImage(String  imgUrl) throws MalformedURLException {
        URL url = new URL(imgUrl);
        ImageIcon icon = new ImageIcon(url);
        Image image = icon.getImage();
 
        // 如果是從本地加載,就用這種方式,沒親自測試過
        // Image src=Toolkit.getDefaultToolkit().getImage(filePath);
 
        // This code ensures that all the pixels in the image are loaded
        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;
    }

我的是在原代碼中,將

 bi = ImageIO.read(inStream);

替換為

bi =  getBufferedImage(inFile.getPath());

具體如下

最終效果

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • ClassLoader類加載源碼解析

    ClassLoader類加載源碼解析

    這篇文章主要為大家詳細解析了ClassLoader類加載源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 解決for循環(huán)為空不需要判斷的問題

    解決for循環(huán)為空不需要判斷的問題

    這篇文章主要介紹了解決for循環(huán)為空不需要判斷的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Spring AI 實現 STDIO和SSE MCP Server的過程詳解

    Spring AI 實現 STDIO和SSE MCP Server的過

    STDIO方式是基于進程間通信,MCP Client和MCP Server運行在同一主機,主要用于本地集成、命令行工具等場景,這篇文章主要介紹了Spring AI 實現 STDIO和SSE MCP Server,需要的朋友可以參考下
    2025-05-05
  • Java中四種引用詳解

    Java中四種引用詳解

    這篇文章主要為大家介紹了Java中的四種引用,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • maven的生命周期及常用命令介紹

    maven的生命周期及常用命令介紹

    maven是一個項目構建和管理的工具,提供了幫助管理 構建、文檔、報告、依賴、scms、發(fā)布、分發(fā)的方法。下面通過本文給大家分享maven的生命周期及常用命令介紹,需要的朋友參考下吧
    2017-11-11
  • Java如何利用Socket傳輸信息或文件

    Java如何利用Socket傳輸信息或文件

    這篇文章主要介紹了Java如何利用Socket傳輸信息或文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java實體類之間的相互轉換方式

    Java實體類之間的相互轉換方式

    這篇文章主要介紹了Java實體類之間的相互轉換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • PowerJob的IdGenerateService工作流程源碼解讀

    PowerJob的IdGenerateService工作流程源碼解讀

    這篇文章主要為大家介紹了PowerJob的IdGenerateService工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Java應用注冊成Windows服務實現自啟的教程詳解

    Java應用注冊成Windows服務實現自啟的教程詳解

    這篇文章主要給大家介紹了Java應用注冊成Windows服務實現自啟的教程,文中有詳細的代碼示例和圖文講解供大家參考,具有一定的參考價值,需要的朋友可以參考下
    2024-02-02
  • 解決Swagger2返回map復雜結構不能解析的問題

    解決Swagger2返回map復雜結構不能解析的問題

    這篇文章主要介紹了解決Swagger2返回map復雜結構不能解析的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論

万荣县| 武安市| 海门市| 宁明县| 库伦旗| 徐州市| 陇川县| 阿合奇县| 紫阳县| 仲巴县| 汝阳县| 黄平县| 西宁市| 和政县| 德令哈市| 岐山县| 西峡县| 仙游县| 时尚| 革吉县| 罗源县| 太白县| 白城市| 同心县| 福州市| 女性| 盐源县| 井冈山市| 淳化县| 大安市| 济宁市| 多伦县| 蕉岭县| 榆社县| 上思县| 会宁县| 永修县| 罗山县| 犍为县| 佛坪县| 白河县|