国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java圖像編程之:Graphics

這篇具有很好參考價值的文章主要介紹了Java圖像編程之:Graphics。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、概念介紹

1、Java圖像編程的核心類

Java圖像編程的核心類包括:

  1. BufferedImage:用于表示圖像的類,可以進行像素級的操作。
  2. Image:表示圖像的抽象類,是所有圖像類的基類。
  3. ImageIcon:用于顯示圖像的類,可以將圖像嵌入到Swing組件中。
  4. ImageIO:用于讀取和寫入圖像文件的類。
  5. Graphics:用于進行圖像繪制操作的抽象類,可以繪制直線、矩形、橢圓等圖形。
  6. Graphics2D:繼承自Graphics類,提供了更多的繪制方法和功能,可以進行更高級的圖像繪制操作。
  7. Color:用于表示顏色的類,可以設(shè)置圖像的顏色。
  8. Font:用于表示字體的類,可以設(shè)置圖像的字體樣式。

這些類是Java圖像編程中常用的核心類,可以幫助你進行圖像的處理、顯示和繪制操作。

2、Graphics簡介

java.awt.Graphics提供了繪制圖形和圖像的功能。它是Abstract Window Toolkit(AWT)的一部分,用于創(chuàng)建基于圖形的用戶界面。

通過使用Graphics類,您可以在屏幕上繪制直線、矩形、橢圓、多邊形等基本形狀,并填充它們的顏色。您還可以繪制圖像、文本和其他復(fù)雜的圖形。

要使用Graphics類,您需要獲取一個Graphics對象。您可以通過調(diào)用組件的getGraphics()方法來獲取該對象,例如JPanel、JFrame、BufferedImage。然后,您可以使用Graphics對象的各種方法來繪制您想要的圖形。

除了繪制圖形,Graphics類還提供了其他一些方法,如設(shè)置顏色、字體和渲染提示等。

3、Graphics主要方法

方法名 描述
void clearRect(int x, int y, int width, int height) 清除指定矩形區(qū)域的像素
void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) 繪制一個圓弧
void drawImage(Image img, int x, int y, ImageObserver observer) 在指定位置繪制指定的圖像
void drawLine(int x1, int y1, int x2, int y2) 繪制一條直線
void drawOval(int x, int y, int width, int height) 繪制一個橢圓
void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) 繪制一個多邊形
void drawRect(int x, int y, int width, int height) 繪制一個矩形
void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) 繪制一個圓角矩形
void drawString(String str, int x, int y) 在指定位置繪制給定字符串
void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) 填充一個圓弧
void fillOval(int x, int y, int width, int height) 填充一個橢圓
void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) 填充一個多邊形
void fillRect(int x, int y, int width, int height) 填充一個矩形
void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) 填充一個圓角矩形
Color getColor() 返回當(dāng)前顏色
Font getFont() 返回當(dāng)前字體
void setColor(Color c) 設(shè)置顏色
void setFont(Font font) 設(shè)置字體

這些是Graphics類中最常用的一些方法,可以用于繪制基本形狀、圖像和文本,并設(shè)置顏色和字體等屬性。

二、代碼示例

以下通過示例代碼,演示幾個主要的方法使用。

注意:原點坐標(biāo)是左上角,x軸向右增加,y軸向下增加

1、常用方法演示

ImageUtil工具類

public class ImageUtil {
    public static BufferedImage createImage() {
        int imageWidth = 500;
        int imageHeight = 500;
        return new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_ARGB);
    }
    /**
     * 將圖片保存到指定位置
     */
    public static void saveImage2File(BufferedImage image, String fileLocation, String fileName) {
        try {
            File file = new File(fileLocation);
            if (!file.exists()) {
                file.mkdir();
            }
            FileOutputStream fos = new FileOutputStream(fileLocation + fileName);
            BufferedOutputStream bos = new BufferedOutputStream(fos);
            ImageIO.write(image, "png", fos);
            bos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用Graphics圖像工具類

    public static void test() {
        BufferedImage bufferedImage = ImageUtil.createImage();
        Graphics g = bufferedImage.getGraphics();
        //設(shè)置淺灰色,并繪制背景
        g.setColor(new Color(0XEEEEEE));
        g.fillRect(0,0,500,500);
        //設(shè)置顏色
        g.setColor(Color.pink);
        //填充圓形
        // x、y 繪制的左上角坐標(biāo),width、height 橢圓的寬、高,如果寬高一致就是圓型
        g.fillOval(10, 50, 100, 100);
        //設(shè)置顏色
        g.setColor(Color.ORANGE);
        // 繪制矩形
        // x、y 繪制的左上角坐標(biāo),width、height 矩形的寬、高
        g.drawRect(50, 20, 100, 100);
        // 填充繪制圓角矩形
        // x、y 繪制的左上角坐標(biāo),width、height 矩形的寬、高
        // arcWidth–四個角處圓弧的水平直徑,arcHeight–四個角處圓弧的垂直直徑。
        g.fillRoundRect(50, 180, 100, 100,20,20);
        //設(shè)置顏色
        g.setColor(Color.RED);
        // 繪制圓弧
        // x、y 繪制的左上角坐標(biāo),width、height 寬、高,startAngle 開始的角度,arcAngle 繪制的總角度,繪制角度從右到左計算
        g.drawArc(10, 300, 100, 100, 30, 180);
        //設(shè)置顏色
        g.setColor(Color.BLUE);
        // 填充繪制多邊形
        // xPoints、yPoints x軸和y軸的坐標(biāo)數(shù)組,分別一一對應(yīng)組成數(shù)個點,nPoints 要繪制的點數(shù)
        int[] xPoints = new int[]{200, 300, 400, 300};
        int[] yPoints = new int[]{110, 210, 110, 10};
        int nPoints = 4;
        g.fillPolygon(xPoints, yPoints, nPoints);
        //設(shè)置顏色
        g.setColor(Color.YELLOW);
        // 填充3d矩形
        g.fill3DRect(300, 300, 100, 100, true);//畫一個線框

        //設(shè)置顏色
        g.setColor(Color.DARK_GRAY);
        // 設(shè)置字體
        Font font = new Font("微軟雅黑", Font.BOLD, 38);
        g.setFont(font);
        // 寫文字
        g.drawString("寫第一標(biāo)題", 10, 450);
        ImageUtil.saveImage2File(bufferedImage, "d:/temp/image/", "g01.png");
    }

java graphics,java基礎(chǔ),java,圖像處理

2、設(shè)置裁剪區(qū)域

    public static void test0() {
        BufferedImage bufferedImage = ImageUtil.createImage();
        Graphics g = bufferedImage.getGraphics();
        //設(shè)置淺灰色,并繪制背景
        g.setColor(new Color(0XEEEEEE));
        g.fillRect(0,0,500,500);
        //設(shè)置顏色
        g.setColor(Color.pink);
        //填充圓形
        g.fillOval(20, 20, 100, 100);
        //設(shè)置顏色
        g.setColor(Color.CYAN);
        //設(shè)置裁剪區(qū)域,設(shè)置以后,后續(xù)的所有繪制都只會在此區(qū)域內(nèi)有效
        g.setClip(100, 100, 200, 200);
        // 在裁剪區(qū)域填充圓型
        g.fillOval(150, 150, 200, 200);
        ImageUtil.saveImage2File(bufferedImage, "d:/temp/image/", "g00.png");
    }

java graphics,java基礎(chǔ),java,圖像處理

3、原點坐標(biāo)轉(zhuǎn)換

    public static void test2() {
        BufferedImage bufferedImage = ImageUtil.createImage();
        Graphics g = bufferedImage.getGraphics();
        //設(shè)置淺灰色,并繪制背景
        g.setColor(new Color(0XEEEEEE));
        g.fillRect(0,0,500,500);
        //設(shè)置顏色
        g.setColor(Color.pink);
        //重新設(shè)置坐標(biāo)原點,新繪制的圖形將以此坐標(biāo)作為原點
        g.translate(-100, -100);
        //填充圓形,原本應(yīng)該在中間,經(jīng)上述轉(zhuǎn)換后,向左上角移動了
        g.fillRect(200, 200, 100, 100);
        ImageUtil.saveImage2File(bufferedImage, "d:/temp/image/", "g03.png");
    }

java graphics,java基礎(chǔ),java,圖像處理文章來源地址http://www.zghlxwxcb.cn/news/detail-787025.html

到了這里,關(guān)于Java圖像編程之:Graphics的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Open CV 圖像處理基礎(chǔ):(一)Open CV 在windows環(huán)境初始化和 Java 動態(tài)庫加載方式介紹

    Open CV 圖像處理基礎(chǔ):(一)Open CV 在windows環(huán)境初始化和 Java 動態(tài)庫加載方式介紹

    OpenCV(Open Source Computer Vision Library) 是一個開源的計算機視覺和機器學(xué)習(xí)軟件庫,它提供了一系列的工具和程序庫,讓用戶能夠進行復(fù)雜的圖像處理和計算機視覺任務(wù)。以下是一些 OpenCV 常用的功能: 圖像讀取和保存:讀取和保存圖像文件,支持多種圖像格式。 圖像處理:包

    2024年02月01日
    瀏覽(27)
  • 選擇最佳圖像處理工具OpenCV、JAI、ImageJ、Thumbnailator和Graphics2D

    選擇最佳圖像處理工具OpenCV、JAI、ImageJ、Thumbnailator和Graphics2D

    ????SVD(stable video diffusion)開放了圖生視頻的API,但是限制圖片分辨率必須為下面三種 1024x576 、 576x1024 、 768x768 。項目基于Fooocus生成的圖片分辨率不滿足,然后基于ImageIO+Graphics2D處理了一下,修改圖片分辨率,然后再去生成視頻。功能調(diào)通了,但是發(fā)現(xiàn)圖片清晰度嚴(yán)重下降

    2024年03月27日
    瀏覽(27)
  • 【Java萬花筒】Java圖像魔法:圖像處理與計算機視覺庫全指南

    在當(dāng)今數(shù)字時代,圖像處理和計算機視覺成為了許多應(yīng)用領(lǐng)域的關(guān)鍵技術(shù)。本文將深入介紹幾款Java圖像處理與計算機視覺庫,為開發(fā)者提供全面的了解和實踐指導(dǎo)。 歡迎訂閱專欄:Java萬花筒 1. Java Advanced Imaging (JAI) 1.1 概述 Java Advanced Imaging(JAI)是Java平臺上一款強大的圖像

    2024年01月18日
    瀏覽(72)
  • Halide 高效的圖像處理語言 簡化圖像編程

    github源碼 Halide是用C++作為宿主語言的一個圖像處理相關(guān)的DSL(Domain Specified Language)語言,全稱領(lǐng)域?qū)S谜Z言。 主要的作用為在軟硬層面上(與算法本身的設(shè)計無關(guān))實現(xiàn)對算法的底層加速,我們有必要對其有一定的了解。 因為不論是 傳統(tǒng)的圖像處理方法亦或是深度學(xué)習(xí)應(yīng)用 都使

    2024年04月26日
    瀏覽(16)
  • PDF處理控件Aspose.PDF功能演示:使用Java將Base64字符串轉(zhuǎn)換為PDF/JPG/PNG圖像

    PDF處理控件Aspose.PDF功能演示:使用Java將Base64字符串轉(zhuǎn)換為PDF/JPG/PNG圖像

    Aspose.PDF ?是一款高級PDF處理API,可以在跨平臺應(yīng)用程序中輕松生成,修改,轉(zhuǎn)換,呈現(xiàn),保護和打印文檔。無需使用Adobe Acrobat。此外,API提供壓縮選項,表創(chuàng)建和處理,圖形和圖像功能,廣泛的超鏈接功能,圖章和水印任務(wù),擴展的安全控件和自定義字體處理。 Aspose API支持

    2024年02月04日
    瀏覽(44)
  • 輕松入門數(shù)字圖像處理,搞定OpenCV編程!

    輕松入門數(shù)字圖像處理,搞定OpenCV編程!

    在剛開始學(xué)習(xí)數(shù)字圖像處理時,你是否也有這樣的困擾: 教材的開篇介紹緒論和數(shù)學(xué)工具,看得似懂非懂,似乎還不涉及編程…… 接下來學(xué)習(xí)灰度變換、空間濾波和頻域濾波,涉及內(nèi)容豐富、方法繁多,試著編了幾個程序就編不下去了…… 開始學(xué)習(xí)OpenCV,找了幾本參考書,

    2024年02月09日
    瀏覽(23)
  • 基于Java(SpringBoot框架)畢業(yè)設(shè)計作品成品(33)AI人工智能畢設(shè)AI常用數(shù)字圖像圖片特效處理系統(tǒng)設(shè)計與實現(xiàn)

    基于Java(SpringBoot框架)畢業(yè)設(shè)計作品成品(33)AI人工智能畢設(shè)AI常用數(shù)字圖像圖片特效處理系統(tǒng)設(shè)計與實現(xiàn)

    博主介紹: 《Vue.js入門與商城開發(fā)實戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計教育和輔導(dǎo)。 所有項目都配有從入門到精通的基礎(chǔ)知識視頻課程,免費 項目配有對應(yīng)開發(fā)文檔、開題報告、任務(wù)書、PPT、論文模版

    2024年02月08日
    瀏覽(34)
  • 【OpenCV】 基礎(chǔ)入門(二)圖像基礎(chǔ)概念 | 圖像灰度化處理 | 圖像二值化處理

    【OpenCV】 基礎(chǔ)入門(二)圖像基礎(chǔ)概念 | 圖像灰度化處理 | 圖像二值化處理

    ??在計算機中用一般用 M x N 的矩陣來表示一幅尺寸大小為 M x N 的數(shù)字圖像,矩陣元素的值就是該圖像對應(yīng)位置上的像素值。 ?? 對于計算機本地磁盤中的彩色圖像,單機鼠標(biāo)右鍵,選擇“屬性”,可以看到一幅圖像的基本信息。 1、灰度圖: ??灰度圖是每個像素只有一

    2024年04月14日
    瀏覽(27)
  • python圖像處理實戰(zhàn)(一)—圖像基礎(chǔ)

    python圖像處理實戰(zhàn)(一)—圖像基礎(chǔ)

    ??寫在前面?? ??個人主頁:https://blog.csdn.net/m0_52051577?type=blog? ??歡迎各位大佬支持點贊收藏,三連必回??! ??本人新開系列專欄—python圖像處理 ?愿每一個驟雨初晴之時,所有的蜻蜓振翅和雨后驚雷,都歸你。 目錄 一、前言 二、認(rèn)識圖像? 三、用到的庫 ?(1)Numpy

    2024年02月09日
    瀏覽(19)
  • opencv-圖像處理基礎(chǔ)-二值圖像

    opencv-圖像處理基礎(chǔ)-二值圖像

    1.二值圖像 二值圖像是指僅僅包含黑色和白色兩種顏色的圖像。 在計算機中,通過一個柵格狀排列的數(shù)據(jù)集(矩陣)來表示和處理圖像。例如,圖 2-1 是 一個字母 A 的圖像,計算機在處理該圖像時,會首先將其劃分為一個個的小方塊,每一個小方 塊就是一個獨立的處理單位

    2024年02月15日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包