1 | import java.awt.geom.*; |
2 | |
3 | static BufferedImage makeRoundedCorner(BufferedImage image, int cornerRadius) {
|
4 | int w = image.getWidth(); |
5 | int h = image.getHeight(); |
6 | BufferedImage output = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); |
7 | Graphics2D g2 = output.createGraphics(); |
8 | |
9 | // fake soft-clipping by first drawing the desired clip shape |
10 | // in fully opaque white with antialiasing enabled... |
11 | g2.setComposite(AlphaComposite.Src); |
12 | g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); |
13 | g2.setColor(Color.WHITE); |
14 | g2.fill(new RoundRectangle2D.Float(0, 0, w, h, cornerRadius, cornerRadius)); |
15 | |
16 | // ... then compositing the image on top, |
17 | // using the white shape from above as alpha source |
18 | g2.setComposite(AlphaComposite.SrcAtop); |
19 | g2.drawImage(image, 0, 0, null); |
20 | g2.dispose(); |
21 | ret output; |
22 | } |
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1007272 |
| Snippet name: | makeRoundedCorner - add rounded, transparent corner to BufferedImage |
| Eternal ID of this version: | #1007272/2 |
| Text MD5: | 080f0dda102d405c35317f761a3ce064 |
| Author: | stefan |
| Category: | javax / imaging |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2017-03-14 14:44:45 |
| Source code size: | 871 bytes / 22 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 844 / 843 |
| Version history: | 1 change(s) |
| Referenced in: | [show references] |