Class Canvas
java.lang.Object
io.leandev.appfuse.image.Canvas
圖像畫布類別,提供繪圖操作的封裝。
此類別封裝了 Java 2D Graphics API,提供便利的方法來繪製圖形、文字和圖片。 支援使用像素或 Length 單位來指定尺寸,並可根據 PPI(每英吋像素數)自動轉換。
使用範例:
Canvas canvas = new Canvas(800, 600);
canvas.setColor(Color.RED);
canvas.fillRect(0, 0, 100, 100);
BufferedImage image = canvas.getImage();
canvas.dispose();
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateFont(String fontFamily, int style, int size) 建立字體,根據 PPI 自動轉換字體大小。createFont(String fontFamily, int style, Length size) 建立字體,使用 Length 單位指定大小。createRectangle(int x, int y, int width, int height) 建立矩形物件,使用像素單位。createRectangle(Length width, Length height) 建立矩形物件,使用 Length 單位,位置為原點。createRectangle(Length x, Length y, Length width, Length height) 建立矩形物件,使用 Length 單位。voiddispose()釋放繪圖資源。voiddrawImage(BufferedImage image, int left, int top) 繪製圖片至指定位置。voiddrawImage(BufferedImage image, Rectangle rect) 繪製圖片,不縮放並置中對齊。voiddrawImage(BufferedImage image, Rectangle rect, Position position) 繪製圖片,使用指定定位但不縮放。voiddrawImage(BufferedImage image, Rectangle rect, Scaling scaling) 繪製圖片,使用指定縮放模式並置中對齊。voiddrawImage(BufferedImage image, Rectangle rect, Scaling scaling, Position position) 繪製圖片,支援縮放模式與定位。voiddrawRect(int x, int y, int width, int height) 繪製矩形邊框。void繪製矩形邊框。void繪製文字,置中對齊。void繪製文字,支援定位對齊。voidfillRect(int x, int y, int width, int height) 填滿矩形區域。void填滿矩形區域。取得畫布的 BufferedImage。getColor()取得目前繪圖顏色。getFont()取得目前繪圖字體。int取得畫布高度。getImage()取得畫布的 BufferedImage。intgetPpi()取得畫布的 PPI(每英吋像素數)。intgetWidth()取得畫布寬度。voidsetBackground(Color color) 設定畫布背景顏色。void設定畫布邊框顏色。void設定繪圖顏色。void設定繪圖字體。voidsetPpi(int ppi) 設定畫布的 PPI(每英吋像素數)。voidsetStroke(float width) 設定繪圖筆觸寬度。void設定繪圖筆觸樣式。
-
Constructor Details
-
Canvas
public Canvas(int width, int height) 以像素尺寸建立畫布。- Parameters:
width- 畫布寬度(像素)height- 畫布高度(像素)
-
Canvas
-
Canvas
-
Canvas
以現有的 BufferedImage 建立畫布。- Parameters:
image- 作為畫布基底的 BufferedImage
-
-
Method Details
-
getHeight
public int getHeight()取得畫布高度。- Returns:
- 畫布高度(像素)
-
getWidth
public int getWidth()取得畫布寬度。- Returns:
- 畫布寬度(像素)
-
setBackground
設定畫布背景顏色。
此方法會以指定顏色填滿整個畫布,然後還原原本的繪圖顏色。
- Parameters:
color- 背景顏色
-
setBorder
-
drawRect
public void drawRect(int x, int y, int width, int height) 繪製矩形邊框。- Parameters:
x- 矩形左上角的 x 座標y- 矩形左上角的 y 座標width- 矩形寬度height- 矩形高度
-
setStroke
-
setStroke
public void setStroke(float width) 設定繪圖筆觸寬度。
使用指定寬度建立基本筆觸樣式。
- Parameters:
width- 筆觸寬度
-
drawRect
-
fillRect
public void fillRect(int x, int y, int width, int height) 填滿矩形區域。- Parameters:
x- 矩形左上角的 x 座標y- 矩形左上角的 y 座標width- 矩形寬度height- 矩形高度
-
fillRect
-
drawImage
繪製圖片,支援縮放模式與定位。
縮放模式(scaling)可設定為以下值:
- fill: 預設值,拉伸圖片以填滿內容框,不保留原始比例
- contain: 等比縮放圖片以填滿框內,保留原始比例
- cover: 等比縮放圖片以填滿框的寬高,可能裁切部分圖片
- none: 忽略框的尺寸,保持圖片原始大小
- scale-down: 比較 none 與 contain 的結果,選擇較小者
- Parameters:
image- 要繪製的圖片rect- 繪製區域,定義圖片放置的位置與可用空間scaling- 縮放模式,參考 CSS object-fit 屬性position- 圖片在區域內的對齊位置
-
drawImage
繪製圖片,使用指定定位但不縮放。- Parameters:
image- 要繪製的圖片rect- 繪製區域position- 圖片在區域內的對齊位置
-
drawImage
繪製圖片,使用指定縮放模式並置中對齊。- Parameters:
image- 要繪製的圖片rect- 繪製區域scaling- 縮放模式
-
drawImage
繪製圖片,不縮放並置中對齊。- Parameters:
image- 要繪製的圖片rect- 繪製區域
-
drawImage
繪製圖片至指定位置。- Parameters:
image- 要繪製的圖片left- 圖片左上角的 x 座標top- 圖片左上角的 y 座標
-
drawText
-
drawText
-
setColor
-
getColor
-
setFont
-
getFont
-
getImage
-
dispose
public void dispose()釋放繪圖資源。
使用完畫布後應呼叫此方法以釋放 Graphics2D 資源。
-
getBufferedImage
取得畫布的 BufferedImage。
此方法與
getImage()功能相同。- Returns:
- 畫布的 BufferedImage 物件
-
createFont
-
createFont
-
createRectangle
建立矩形物件,使用像素單位。- Parameters:
x- 矩形左上角的 x 座標y- 矩形左上角的 y 座標width- 矩形寬度height- 矩形高度- Returns:
- 矩形物件
-
createRectangle
-
createRectangle
-
getPpi
public int getPpi()取得畫布的 PPI(每英吋像素數)。- Returns:
- PPI 值
-
setPpi
public void setPpi(int ppi) 設定畫布的 PPI(每英吋像素數)。- Parameters:
ppi- PPI 值
-