- 用 java.awt.image.BufferedImage 繪製不規則圖形 123456789101112131415161718192021
//產生一個200x200的BufferedImage
BufferedImage img =
new
BufferedImage(
200
,
200
, BufferedImage.TYPE_BYTE_GRAY);
//產生一個正三角形與倒三角形,組合成一個六芒星的形狀
int
[] aX = {
100
,
0
,
200
,
100
};
int
[] aY = {
0
,
150
,
150
,
0
};
int
[] bX = {
100
,
0
,
200
,
100
};
int
[] bY = {
200
,
50
,
50
,
200
};
img.getGraphics().fillPolygon(aX, aY,
4
);
img.getGraphics().fillPolygon(bX, bY,
4
);
//強制將圖形以黑白兩色呈現, 這樣就可以將不規則圖形成為遮罩圖
Image mask = Image.getInstance(img,
null
,
true
);
//將繪製的圖形做一次Invert, 不然會變成顯示六芒星以外的圖
mask.setInverted(
true
);
mask.makeMask();
//讀取欲顯示的圖片
Image image = Image.getInstance(
"c:\\image.jpg"
);
//設定該圖片的遮罩圖
image.setImageMask(mask);
//設定該圖片在pdf版面中的位置
image.setAbsolutePosition(
100
,
100
);
//最後透過PdfContentByte的assImage將圖片加入即可
- 自行設定遮罩的圖形, 可製造漸層的效果(漸層效果會以背景顏色進行灰階式的遮罩) 12345678910111213141516
//產生一個0-255漸層的byte[]
byte
maskB[] =
new
byte
[
256
];
for
(
int
i=
0
; i<
256
; i++) {
maskB[i] = (
byte
)i;
}
//設定由上至下的漸層效果
Image mask = Image.getInstance(
1
,
256
,
1
,
8
, maskB);
//設定由左至右的漸層效果可用Image mask = Image.getInstance(256, 1, 1, 8, maskB);
mask.makeMask();
//讀取欲顯示的圖片
Image image = Image.getInstance(
"c:\\image.jpg"
);
//設定該圖片的遮罩圖
image.setImageMask(mask);
//設定該圖片在pdf版面中的位置
image.setAbsolutePosition(
100
,
100
);
//最後透過PdfContentByte的assImage將圖片加入即可
2007/06/15
[Java] iText遮罩圖設計
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言