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

java awt生成簽名圖片如何消除鋸齒化

 更新時間:2021年11月15日 10:27:47   作者:準時下班  
這篇文章主要介紹了java awt生成簽名圖片如何消除鋸齒化,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

awt生成簽名圖片如何消除鋸齒化

項目場景

在一個線上互聯(lián)網(wǎng)醫(yī)院中,需要生成電子處方圖片,圖片里面會有醫(yī)生的手寫簽名。通過java.awt的Graphics2D方式來生成處方圖片,并將手寫簽名的圖片導入其中。

問題描述

但是在簽名圖片導入后,就可以看到明顯的鋸齒。

具體導入圖片代碼:

g2.drawImage(getImage("https://xx.jpg", 100, 50), WIDTH - (LEVEL_PADDING + 9 * contentFontSize + contentFontSize / 2) + 5, height - bottomLine - (contentFontSize + LINE_SPACING + 15) + 5,100, 50, null);
    private static BufferedImage getImage(String url) {
        if (Parameters.isEmpty(url)) return null;
        BufferedImage read = null;
        try {
            url = url.replaceFirst("https", "http");
            read = ImageIO.read(new URL(url));
            return read;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

效果如下:

在這里插入圖片描述

解決方案

修改代碼如下:

g2.drawImage(getImage("https://xx.jpg", 100, 50), WIDTH - (LEVEL_PADDING + 9 * contentFontSize + contentFontSize / 2) + 5, height - bottomLine - (contentFontSize + LINE_SPACING + 15) + 5, null); 
   /**
     * 抗鋸齒處理
     *
     * @param url
     * @return
     */
    private static Image getImage(String url, int width, int height) {
        if (Parameters.isEmpty(url)) return null;
        BufferedImage read = null;
        try {
            url = url.replaceFirst("https", "http");
            read = ImageIO.read(new URL(url));
            return read.getScaledInstance(width, height, BufferedImage.SCALE_SMOOTH);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

效果如下:

在這里插入圖片描述

就是解決方法,可能還有更好的方法,需要繼續(xù)摸索,請多指教。

AWT,SWT縮小圖片消除鋸齒的平滑處理

在Java中縮小圖片很容易就得到一張很糟糕的圖片,上面滿是鋸齒和不清晰的線條,在Java EE中,我們通常使用Jmagick,Jmagick使用的是類C語言程序提供給Java的API接口,在網(wǎng)站中運行,效率較高,但是體積較大,程序復雜度也較高(相關(guān)下載安裝方式在各大網(wǎng)站上均有詳細敘述,不再此重復)。如果不是特殊需要,不推薦在PC應用程序中使用。

在PC應用程序中,縮小一副圖片有好多方法

縮小一副圖片最常見的方法

  • awt中Image.getScaledInstance方法
  • swt中ImageData.ScaledTo方法
  • PaintEvent.gc.drawImage方法

awt中,設(shè)置getScaledInstance方法的第三個參數(shù)為BufferedImage.SCALE_SMOOTH即可

swt中如果使用ScaledTo方法只能得到一副慘不忍睹的圖片

所以swt縮小圖片而不產(chǎn)生鋸齒的方法只有在PaintEvent.gc.drawImage方法上做文章

說了這么多,其實方法很簡單.....就是在drawImage之前,設(shè)置e.gc.setAdvanced(true);e.gc.setAntialias(SWT.ON);

: D

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

相關(guān)文章

  • spring集成mybatis實現(xiàn)mysql數(shù)據(jù)庫讀寫分離

    spring集成mybatis實現(xiàn)mysql數(shù)據(jù)庫讀寫分離

    本文通過實例代碼給大家介紹了spring集成mybatis實現(xiàn)mysql數(shù)據(jù)庫讀寫分離,需要的朋友可以參考下
    2017-08-08
  • SpringBoot與Spring之間的對比

    SpringBoot與Spring之間的對比

    這篇文章主要介紹了SpringBoot與Spring之間的對比,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java線程池的簡單使用方法實例教程

    Java線程池的簡單使用方法實例教程

    線程的使用在java中占有極其重要的地位,在jdk1.4極其之前的jdk版本中,關(guān)于線程池的使用是極其簡陋的,在jdk1.5之后這一情況有了很大的改,這篇文章主要給大家介紹了關(guān)于Java線程池的簡單使用方法,需要的朋友可以參考下
    2021-10-10
  • SpringBoot之@Scheduled注解用法解讀

    SpringBoot之@Scheduled注解用法解讀

    這篇文章主要介紹了SpringBoot之@Scheduled注解用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • SpringBoot前后端json數(shù)據(jù)交互的全過程記錄

    SpringBoot前后端json數(shù)據(jù)交互的全過程記錄

    現(xiàn)在大多數(shù)互聯(lián)網(wǎng)項目都是采用前后端分離的方式開發(fā),下面這篇文章主要給大家介紹了關(guān)于SpringBoot前后端json數(shù)據(jù)交互的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • SpringBoot?+?layui?框架實現(xiàn)一周免登陸功能示例詳解

    SpringBoot?+?layui?框架實現(xiàn)一周免登陸功能示例詳解

    這篇文章主要介紹了SpringBoot+layui框架實現(xiàn)一周免登陸功能,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • intellij idea創(chuàng)建第一個動態(tài)web項目的步驟方法

    intellij idea創(chuàng)建第一個動態(tài)web項目的步驟方法

    這篇文章主要介紹了intellij idea創(chuàng)建第一個動態(tài)web項目的步驟方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Spring Boot2解決idea console 控制臺輸出亂碼的問題

    Spring Boot2解決idea console 控制臺輸出亂碼的問題

    這篇文章主要介紹了Spring Boot2解決idea console 控制臺輸出亂碼的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Servlet第一個項目的發(fā)布(入門)

    Servlet第一個項目的發(fā)布(入門)

    這篇文章主要介紹了Servlet第一個項目的發(fā)布,下面是用servlet實現(xiàn)的一個簡單的web項目,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-04-04
  • Mybatis下動態(tài)sql中##和$$的區(qū)別講解

    Mybatis下動態(tài)sql中##和$$的區(qū)別講解

    今天小編就為大家分享一篇關(guān)于Mybatis下動態(tài)sql中##和$$的區(qū)別講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論

海阳市| 温州市| 阿鲁科尔沁旗| 镇康县| 巴青县| 丹江口市| 库尔勒市| 津南区| 工布江达县| 工布江达县| 囊谦县| 鄂温| 泾阳县| 泉州市| 洛阳市| 佳木斯市| 泰兴市| 临清市| 教育| 瓮安县| 阿尔山市| 绩溪县| 松溪县| 南丰县| 茌平县| 邵东县| 望谟县| 天津市| 德格县| 惠安县| 马边| 望奎县| 康乐县| 融水| 佳木斯市| 迁西县| 乐东| 巫山县| 津南区| 大悟县| 高陵县|