[seam-issues] [JBoss JIRA] Updated: (JBSEAM-4633) Apply/decorate graphicImage with rounded corners
Marek Novotny (JIRA)
jira-events at lists.jboss.org
Mon May 31 19:10:51 EDT 2010
[ https://jira.jboss.org/browse/JBSEAM-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marek Novotny updated JBSEAM-4633:
----------------------------------
Fix Version/s: (was: 2.2.1.CR2)
> Apply/decorate graphicImage with rounded corners
> ------------------------------------------------
>
> Key: JBSEAM-4633
> URL: https://jira.jboss.org/browse/JBSEAM-4633
> Project: Seam
> Issue Type: Feature Request
> Components: JSF Controls
> Reporter: Kasper Sørensen
> Priority: Minor
> Fix For: The future
>
>
> It would be great with a graphic image transformation that adds rounded corners to an image. Most JavaScript libraries can add rounded corners to DIV-elements and more, but not IMG-elements. This is why it would be great to perform such rounding of edges on the server side.
> I've implemented this feature using this code:
> {code}
> @Override
> public void applyTransform(Image image) throws IOException {
> Integer height = image.getHeight();
> Integer width = image.getWidth();
> BufferedImage sourceImage = image.getBufferedImage();
> BufferedImage targetImage;
> Graphics2D graphics;
> if (image.getContentType() == Type.IMAGE_JPEG) {
> targetImage = new BufferedImage(width, height,
> BufferedImage.TYPE_INT_RGB);
> graphics = targetImage.createGraphics();
> graphics.setBackground(Color.WHITE);
> } else {
> // transparent background if supported
> targetImage = sourceImage.createGraphics().getDeviceConfiguration()
> .createCompatibleImage(width, height, Transparency.BITMASK);
> graphics = targetImage.createGraphics();
> graphics.setBackground(new Color(0, 0, 0, 0));
> }
> graphics.clearRect(0, 0, width, height);
> RoundRectangle2D.Float roundedRectangle = new RoundRectangle2D.Float(0,
> 0, width, height, radius, radius);
> graphics.setClip(roundedRectangle);
> graphics.drawImage(sourceImage, 0, 0, null);
> graphics.dispose();
> image.setBufferedImage(targetImage);
> }
> private Integer radius = 20;
> public void setRadius(Integer radius) {
> this.radius = radius;
> }
> public Integer getRadius() {
> return radius;
> }
> @Override
> public Object saveState(FacesContext context) {
> Object[] state = new Object[2];
> state[0] = super.saveState(context);
> state[1] = radius;
> return state;
> }
> @Override
> public void restoreState(FacesContext context, Object state) {
> Object[] states = (Object[]) state;
> super.restoreState(context, states[0]);
> radius = (Integer) states[1];
> }
> {code}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the seam-issues
mailing list