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

Java實(shí)現(xiàn)將彩色PDF轉(zhuǎn)為灰度PDF的示例代碼

 更新時(shí)間:2022年03月22日 14:44:33   作者:E-iceblue  
本文以Java代碼為例介紹如何實(shí)現(xiàn)將彩色PDF文件轉(zhuǎn)為灰度(黑白)的PDF文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧

本文以Java代碼為例介紹如何實(shí)現(xiàn)將彩色PDF文件轉(zhuǎn)為灰度(黑白)的PDF文件,即:將PDF文檔里面的彩色圖片或者文字等通過(guò)調(diào)用PdfGrayConverter.toGrayPdf()方法轉(zhuǎn)為文檔頁(yè)面為灰色調(diào)、無(wú)彩色效果的文檔,可實(shí)現(xiàn)縮小文檔大小的目的。下面是程序運(yùn)行環(huán)境及代碼示例。

配置程序環(huán)境

IntelliJ IDEA

Spire.PDF for Java 5.3.1

PDF文檔

關(guān)于如何引入jar文件:

1.通過(guò)Maven倉(cāng)庫(kù)下載,如下配置Pom.xml:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
    </repositories>
<dependencies>
    <dependency>
        <groupId> e-iceblue </groupId>
        <artifactId>spire.pdf</artifactId>
        <version>5.3.1</version>
    </dependency>
</dependencies>

2.手動(dòng)添加jar

下載jar包到本地,然后解壓,找到lib文件夾下的Spire.Pdf.jar。然后在IDEA中打開(kāi)如下界面,將本地路徑下的jar文件添加至Java程序。

轉(zhuǎn)彩色PDF為灰度

這里轉(zhuǎn)換只需用到以下兩個(gè)步驟:

  • 使用 PdfGrayConverter類加載PDF文件。
  • 調(diào)用 PdfGrayConverter.toGrayPdf() 方法將 PDF 轉(zhuǎn)換為灰度。

實(shí)現(xiàn)代碼(Java)

import com.spire.pdf.conversion.*;

public class ToGrayPDF {
    public static void main(String[] args) {
        //創(chuàng)建一個(gè)PdfGrayConverter實(shí)例并加載PDF文檔
        PdfGrayConverter converter = new PdfGrayConverter("Booklet.pdf");

        //將彩色PDF轉(zhuǎn)換為灰度
        converter.toGrayPdf("ToGray.pdf");
        converter.dispose();
    }
}

轉(zhuǎn)換結(jié)果:

補(bǔ)充

Java不僅能將彩色PDF轉(zhuǎn)換為灰度的PDF,還能實(shí)現(xiàn)將彩色圖像轉(zhuǎn)換為灰度圖像,下面是實(shí)現(xiàn)步驟

黑白圖像只有黑白兩種顏色,所以用灰度值0-255來(lái)表示黑白的比例。

在彩色圖像中有RGB三種顏色的分量來(lái)表示顏色,當(dāng)R=G=B時(shí),就顯示出灰色。

由RGB來(lái)求得灰度值的方法有好幾種,可以取RGB的比例3:6:1,這樣算出的灰度應(yīng)用到圖像中就能生成不錯(cuò)的黑白圖像。

下面放出2張效果圖,分別是原圖和轉(zhuǎn)換的黑白圖:

根據(jù)上面的RGB比例公式得出一個(gè)計(jì)算灰度值得函數(shù)

   //計(jì)算像素點(diǎn)的灰度
    public static int getGray(Color pixel) {
        return (pixel.getRed()*30+pixel.getGreen()*60+pixel.getBlue()*10)/100;
    }

接下來(lái)就是讀取一個(gè)圖片到BufferedImage然后遍歷面一個(gè)像素點(diǎn)的顏色,用getGray算出灰度值再賦值成為該點(diǎn)新的顏色值(R=G=B=算出的灰度值)

代碼如下

    JFileChooser jChooser = new JFileChooser();
    //設(shè)置默認(rèn)的打開(kāi)目錄,如果不設(shè)的話按照window的默認(rèn)目錄(我的文檔)
    jChooser.setCurrentDirectory(new File("f:/"));
    //打開(kāi)一個(gè)對(duì)話框
    int index = jChooser.showDialog(null, "打開(kāi)文件");
    if (index == JFileChooser.APPROVE_OPTION) {
     path=jChooser.getSelectedFile().getAbsolutePath();
    }
    Image img = new ImageIcon(path).getImage();
    BufferedImage bfi = new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_INT_RGB);
    bfi.getGraphics().drawImage(img, 0, 0,null);
    for(int y=0;y<bfi.getHeight();y++) 
        for(int x=0;x<bfi.getWidth();x++) {
            Color pixel = new Color(bfi.getRGB(x, y));
            bfi.setRGB(x, y,new Color(getGray(pixel),getGray(pixel),getGray(pixel)).getRGB());
        }
    ImageIO.write(bfi, "JPEG", new File("1.jpg"));

到此這篇關(guān)于Java實(shí)現(xiàn)將彩色PDF轉(zhuǎn)為灰度PDF的示例代碼的文章就介紹到這了,更多相關(guān)Java彩色PDF轉(zhuǎn)灰度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 簡(jiǎn)單談?wù)刯ava的異常處理(Try Catch Finally)

    簡(jiǎn)單談?wù)刯ava的異常處理(Try Catch Finally)

    在程序設(shè)計(jì)中,進(jìn)行異常處理是非常關(guān)鍵和重要的一部分。一個(gè)程序的異常處理框架的好壞直接影響到整個(gè)項(xiàng)目的代碼質(zhì)量以及后期維護(hù)成本和難度。
    2016-03-03
  • Java8中Optional的使用方法詳解

    Java8中Optional的使用方法詳解

    這篇文章主要介紹了Java8中Optional的使用方法詳解,傳統(tǒng)的寫代碼方式經(jīng)常會(huì)遇到NullPointerException,這就需要我們?cè)诖a中經(jīng)常判空,而判空的寫法又會(huì)顯得很累贅,這里就可以用到Optional來(lái)簡(jiǎn)化代碼,需要的朋友可以參考下
    2024-01-01
  • 深入淺析Spring-boot-starter常用依賴模塊

    深入淺析Spring-boot-starter常用依賴模塊

    這篇文章主要介紹了Spring-boot-starter常用依賴模塊及spring boot的兩大優(yōu)點(diǎn),需要的朋友可以參考下
    2018-01-01
  • SpringBoot整合Mybatis與thymleft實(shí)現(xiàn)增刪改查功能詳解

    SpringBoot整合Mybatis與thymleft實(shí)現(xiàn)增刪改查功能詳解

    MybatisPlus是國(guó)產(chǎn)的第三方插件,?它封裝了許多常用的CURDapi,免去了我們寫mapper.xml的重復(fù)勞動(dòng)。本文將整合MybatisPlus實(shí)現(xiàn)增刪改查功能,感興趣的可以了解一下
    2022-12-12
  • IDEA創(chuàng)建yml文件不顯示小樹葉創(chuàng)建失敗問(wèn)題的解決方法

    IDEA創(chuàng)建yml文件不顯示小樹葉創(chuàng)建失敗問(wèn)題的解決方法

    這篇文章主要介紹了IDEA創(chuàng)建yml文件不顯示小樹葉創(chuàng)建失敗問(wèn)題的解決方法,需要的朋友可以參考下
    2020-07-07
  • Java截取字符串的方法

    Java截取字符串的方法

    這篇文章主要介紹了Java截取字符串的方法,實(shí)例分析了java中substring方法的使用技巧,需要的朋友可以參考下
    2015-05-05
  • java鍵盤錄入的方法舉例詳解

    java鍵盤錄入的方法舉例詳解

    這篇文章主要給大家介紹了關(guān)于java鍵盤錄入的相關(guān)資料,我們?cè)趯懗绦虻臅r(shí)候,數(shù)據(jù)值都是固定的,但是實(shí)際開(kāi)發(fā)中,數(shù)據(jù)值肯定是變化的,所以,把數(shù)據(jù)改進(jìn)為鍵盤錄入,提高程序的靈活性,需要的朋友可以參考下
    2023-10-10
  • Java中兩個(gè)List之間的比較方法(差集、交集和并集)

    Java中兩個(gè)List之間的比較方法(差集、交集和并集)

    在業(yè)務(wù)的開(kāi)發(fā)過(guò)程中會(huì)經(jīng)常用到兩個(gè)List集合相互取值的情況,下面這篇文章主要給大家介紹了關(guān)于Java中兩個(gè)List之間的比較方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Java Spring分別實(shí)現(xiàn)定時(shí)任務(wù)方法

    Java Spring分別實(shí)現(xiàn)定時(shí)任務(wù)方法

    這篇文章主要為大家詳細(xì)介紹了Java與Spring設(shè)置動(dòng)態(tài)定時(shí)任務(wù)的方法,定時(shí)任務(wù)的應(yīng)用場(chǎng)景十分廣泛,如定時(shí)清理文件、定時(shí)生成報(bào)表、定時(shí)數(shù)據(jù)同步備份等
    2022-07-07
  • SpringBoot項(xiàng)目使用slf4j的MDC日志打點(diǎn)功能(最新推薦)

    SpringBoot項(xiàng)目使用slf4j的MDC日志打點(diǎn)功能(最新推薦)

    這篇文章主要介紹了SpringBoot項(xiàng)目使用slf4j的MDC日志打點(diǎn)功能,本文通過(guò)示例代碼給大家介紹非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06

最新評(píng)論

嵊泗县| 丁青县| 安仁县| 鹤庆县| 保德县| 白山市| 宁国市| 桐庐县| 顺平县| 日照市| 和平县| 南投市| 仁怀市| 惠州市| 名山县| 平阴县| 三门县| 库伦旗| 子长县| 易门县| 屯昌县| 临桂县| 东源县| 天气| 习水县| 平潭县| 玉龙| 焉耆| 宜丰县| 卢龙县| 鄄城县| 屯门区| 新津县| 沁水县| 方城县| 祁门县| 遂宁市| 图木舒克市| 大名县| 天台县| 渝北区|