List of usage examples for java.awt RenderingHints KEY_ALPHA_INTERPOLATION
Key KEY_ALPHA_INTERPOLATION
To view the source code for java.awt RenderingHints KEY_ALPHA_INTERPOLATION.
Click Source Link
From source file:com.piketec.jenkins.plugins.tpt.publisher.PieChart.java
/** * Render the pie chart with the given height * /* w w w . jav a2 s . c o m*/ * @param height * The height of the resulting image * @return The pie chart rendered as an image */ public BufferedImage render(int height) { BufferedImage image = new BufferedImage(totalWidth, totalHeight, BufferedImage.TYPE_INT_RGB); Graphics2D g2 = image.createGraphics(); g2.scale(zoom, zoom); // fill background to white g2.setColor(Color.WHITE); g2.fill(new Rectangle(totalWidth, totalHeight)); // prepare render hints g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); g2.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2.setStroke(new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); // draw shadow image g2.drawImage(pieShadow.getImage(), 0, 0, pieShadow.getImageObserver()); double start = 0; List<Arc2D> pies = new ArrayList<>(); // pie segmente erzeugen und fuellen if (total == 0) { g2.setColor(BRIGHT_GRAY); g2.fillOval(centerX - radius, centerY - radius, 2 * radius, 2 * radius); g2.setColor(Color.WHITE); g2.drawOval(centerX - radius, centerY - radius, 2 * radius, 2 * radius); } else { for (Segment s : segments) { double portionDegrees = s.getPortion() / total; Arc2D pie = paintPieSegment(g2, start, portionDegrees, s.getColor()); if (withSubSegments) { double smallRadius = radius * s.getSubSegmentRatio(); paintPieSegment(g2, start, portionDegrees, smallRadius, s.getColor().darker()); } start += portionDegrees; // portion degree jetzt noch als String (z.B. "17.3%" oder "20%" zusammenbauen) String p = String.format(Locale.ENGLISH, "%.1f", Math.rint(portionDegrees * 1000) / 10.0); p = removeSuffix(p, ".0"); // evtl. ".0" bei z.B. "25.0" abschneiden (-> "25") s.setPercent(p + "%"); pies.add(pie); } // weissen Rahmen um die pie segmente zeichen g2.setColor(Color.WHITE); for (Arc2D pie : pies) { g2.draw(pie); } } // Legende zeichnen renderLegend(g2); // "xx%" Label direkt auf die pie segmente zeichen g2.setColor(Color.WHITE); float fontSize = 32f; g2.setFont(NORMALFONT.deriveFont(fontSize).deriveFont(Font.BOLD)); start = 0; for (Segment s : segments) { if (s.getPortion() < 1E-6) { continue; // ignore segments with portions that are extremely small } double portionDegrees = s.getPortion() / total; double angle = start + portionDegrees / 2; // genau in der Mitte des Segments double xOffsetForCenteredTxt = 8 * s.getPercent().length(); // assume roughly 8px per char int x = (int) (centerX + 0.6 * radius * Math.sin(2 * Math.PI * angle) - xOffsetForCenteredTxt); int y = (int) (centerY - 0.6 * radius * Math.cos(2 * Math.PI * angle) + fontSize / 2); g2.drawString(s.getPercent(), x, y); start += portionDegrees; } return image; }
From source file:com.igormaznitsa.jhexed.renders.svg.SVGImage.java
private static void processAntialias(final boolean flag, final Graphics2D g) { if (flag) {//from w w w .j ava2 s .co m g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); } else { g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); g.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED); } }
From source file:org.hydroponics.dao.JDBCHydroponicsDaoImpl.java
public byte[] getThumbnail(BufferedImage buffImage) throws IOException { BufferedImage pDestImage = new BufferedImage(Constants.THUMBNAIL_WIDTH, Constants.THUMBNAIL_HEIGHT, BufferedImage.TYPE_3BYTE_BGR); AffineTransform transform = new AffineTransform(); transform.scale((float) Constants.THUMBNAIL_WIDTH / (float) buffImage.getWidth(), (float) Constants.THUMBNAIL_HEIGHT / (float) buffImage.getHeight()); Graphics2D g = (Graphics2D) pDestImage.getGraphics(); //set the rendering hints for a good thumbnail image Map m = g.getRenderingHints(); m.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); m.put(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); m.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); m.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g.setRenderingHints(m);//from w w w .ja v a 2s .c o m g.drawImage(buffImage, transform, null); g.dispose(); ByteArrayOutputStream out = new ByteArrayOutputStream(); ImageIO.write(pDestImage, "JPEG", out); return out.toByteArray(); }
From source file:edu.ku.brc.specify.utilapps.ERDVisualizer.java
/** * @return/*from ww w . j a v a2s . c om*/ */ public static RenderingHints createTextRenderingHints() { RenderingHints renderingHints; //RenderingHints renderingHints1 = new RenderingHints(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); RenderingHints renderingHints2 = new RenderingHints(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); //RenderingHints renderingHints3 = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); renderingHints = renderingHints2; Object value = RenderingHints.VALUE_TEXT_ANTIALIAS_ON; try { java.lang.reflect.Field declaredField = RenderingHints.class .getDeclaredField("VALUE_TEXT_ANTIALIAS_LCD_HRGB"); value = declaredField.get(null); } catch (Exception e) { edu.ku.brc.af.core.UsageTracker.incrHandledUsageCount(); edu.ku.brc.exceptions.ExceptionTracker.getInstance().capture(ERDVisualizer.class, e); // do nothing } renderingHints.put(RenderingHints.KEY_TEXT_ANTIALIASING, value); //renderingHints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); //renderingHints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP); //renderingHints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_VRGB); return renderingHints; }
From source file:net.geoprism.dashboard.DashboardMap.java
private BufferedImage getLegendTitleImage(DashboardLayer layer) { FontMetrics fm;/*from w ww . j ava2 s .c om*/ int textWidth; int textHeight; int textBoxHorizontalPadding = 4; int textBoxVerticalPadding = 4; int borderWidth = 2; int paddedTitleHeight; int paddedTitleWidth; int titleLeftPadding = textBoxHorizontalPadding; BufferedImage newLegendTitleBase; Graphics2D newLegendTitleBaseGraphic = null; try { // Build the Font object Font titleFont = new Font(layer.getName(), Font.BOLD, 14); // Build variables for base legend graphic construction try { newLegendTitleBase = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB); newLegendTitleBaseGraphic = newLegendTitleBase.createGraphics(); newLegendTitleBaseGraphic.setFont(titleFont); fm = newLegendTitleBaseGraphic.getFontMetrics(); textHeight = fm.getHeight(); textWidth = fm.stringWidth(layer.getName()); paddedTitleWidth = textWidth + (textBoxHorizontalPadding * 2) + (borderWidth * 2); paddedTitleHeight = textHeight + (textBoxVerticalPadding * 2) + (borderWidth * 2); } finally { // dispose of temporary graphics context if (newLegendTitleBaseGraphic != null) { newLegendTitleBaseGraphic.dispose(); } } titleLeftPadding = ((paddedTitleWidth / 2) - ((textWidth + (textBoxHorizontalPadding * 2) + (borderWidth * 2)) / 2)) + textBoxHorizontalPadding; newLegendTitleBase = new BufferedImage(paddedTitleWidth, paddedTitleHeight, BufferedImage.TYPE_INT_ARGB); newLegendTitleBaseGraphic = newLegendTitleBase.createGraphics(); newLegendTitleBaseGraphic.drawImage(newLegendTitleBase, 0, 0, null); newLegendTitleBaseGraphic.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); newLegendTitleBaseGraphic.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); newLegendTitleBaseGraphic.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY); newLegendTitleBaseGraphic.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE); newLegendTitleBaseGraphic.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); newLegendTitleBaseGraphic.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); newLegendTitleBaseGraphic.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); newLegendTitleBaseGraphic.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE); newLegendTitleBaseGraphic.setFont(titleFont); // draw title text fm = newLegendTitleBaseGraphic.getFontMetrics(); newLegendTitleBaseGraphic.setColor(Color.WHITE); newLegendTitleBaseGraphic.drawString(layer.getName(), titleLeftPadding, fm.getAscent() + textBoxVerticalPadding); newLegendTitleBaseGraphic.drawImage(newLegendTitleBase, 0, 0, null); } finally { if (newLegendTitleBaseGraphic != null) { newLegendTitleBaseGraphic.dispose(); } } return newLegendTitleBase; }
From source file:org.jcurl.core.swing.RockLocationDisplayBase.java
public void exportPng(File dst) throws IOException { final BufferedImage img = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB); final Graphics2D g2 = (Graphics2D) img.getGraphics(); {/* w w w . j a va 2s . co m*/ final Map hints = new HashMap(); hints.put(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); hints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY); hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE); hints.put(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); hints.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); hints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); hints.put(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE); hints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); g2.addRenderingHints(hints); } this.paintComponent(g2); g2.dispose(); if (!dst.getName().endsWith(".png")) dst = new File(dst.getName() + ".png"); ImageIO.write(img, "png", dst); }
From source file:org.jcurl.core.swing.WCComponent.java
private BufferedImage renderPng(final String watermark) { final BufferedImage img = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB); final Graphics2D g2 = (Graphics2D) img.getGraphics(); {/*from w ww. java 2 s .c o m*/ final Map<Key, Object> hints = new HashMap<Key, Object>(); hints.put(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); hints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY); hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE); hints.put(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); hints.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); hints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); hints.put(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE); hints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); g2.addRenderingHints(hints); } final Font f0 = g2.getFont(); paint(g2); g2.setTransform(new AffineTransform()); if (watermark != null) { if (log.isDebugEnabled()) log.debug(f0); g2.setFont(f0); g2.setColor(new Color(0, 0, 0, 128)); g2.drawString(watermark, 10, 20); } g2.dispose(); return img; }
From source file:org.squidy.designer.shape.VisualShape.java
@Override protected final void paint(PPaintContext paintContext) { super.paint(paintContext); Graphics2D g = paintContext.getGraphics(); // Set default font. g.setFont(internalFont);/*w ww .java2 s .c o m*/ // if (!renderingHintsSet) { if (isRenderPrimitive()) { g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); g.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED); g.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_SPEED); g.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DISABLE); g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_OFF); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR); g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_SPEED); g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE); g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); } else { // Use anti aliasing -> May slow down performance. g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); g.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY); g.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DEFAULT); g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_DEFAULT); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT); g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); } // renderingHintsSet = true; // } // Paint the shapes visual representation. paintShape(paintContext); // Allows visual debugging if enabled. if (DebugConstants.ENABLED) { paintDebug(paintContext); } }
From source file:springapp.web.controller.theme.ProcessThemeController.java
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { HttpSession session = httpServletRequest.getSession(); String templateIdString = httpServletRequest.getParameter(ApplicationConstants.TEMPLATE_ID); byte templateId = 0; int oldColor = 0; int newColor = 0; int oldHeaderColor = 0; int newHeaderColor = 0; int oldBgColor = 0; int newBgColor = 0; int oldFontColor = 0; int newFontColor = 0; int oldHeaderFontColor = 0; int newHeaderFontColor = 0; int oldBorderColor = 0; int newBorderColor = 0; int oldTransp = 0; int newTransp = 0; byte sizeHeaderFontDiff = 11; byte sizeFontDiff = 11; ThemeParametersHolder themeParametersHolder = null; String toolsetName = httpServletRequest.getParameter(ApplicationConstants.TOOLSET_NAME); String versionString = httpServletRequest.getParameter(ApplicationConstants.VERSION); String version = (null == versionString) ? ApplicationConstants.DEFAULT_EXTJS_VERSION : versionString; String familyHeaderFont = httpServletRequest.getParameter(ApplicationConstants.FAMILY_HEADER_FONT); String familyFont = httpServletRequest.getParameter(ApplicationConstants.FAMILY_FONT); String weightHeaderFont = httpServletRequest.getParameter(ApplicationConstants.WEIGHT_HEADER_FONT); String weightFont = httpServletRequest.getParameter(ApplicationConstants.WEIGHT_FONT); try {/*from w w w . ja v a 2s . c o m*/ templateId = null != templateIdString ? Byte.parseByte(templateIdString) : 0; String oldColorString = (0 == templateId) ? "#DFE8F6" : "#F1F1F1"; String newColorString = httpServletRequest.getParameter(ApplicationConstants.NEW_COLOR); String oldHeaderColorString = (0 == templateId) ? "#CDDEF3" : "#D7D7D7"; String newHeaderColorString = httpServletRequest.getParameter(ApplicationConstants.NEW_HEADER_COLOR); String oldBgColorString = "#FFFFFF"; String newBgColorString = httpServletRequest.getParameter(ApplicationConstants.NEW_BG_COLOR); String oldFontColorString = "#000000"; String newFontColorString = httpServletRequest.getParameter(ApplicationConstants.NEW_FONT_COLOR); String oldHeaderFontColorString = (0 == templateId) ? "#15428B" : "#222222"; String newHeaderFontColorString = httpServletRequest .getParameter(ApplicationConstants.NEW_HEADER_FONT_COLOR); String sizeHeaderFontString = httpServletRequest.getParameter(ApplicationConstants.SIZE_HEADER_FONT); String sizeFontString = httpServletRequest.getParameter(ApplicationConstants.SIZE_FONT); String oldBorderColorString = (0 == templateId) ? "#99BBE8" : "#D0D0D0"; String newBorderColorString = httpServletRequest.getParameter(ApplicationConstants.NEW_BORDER_COLOR); String oldTranspString = "255"; String newTranspString = httpServletRequest.getParameter(ApplicationConstants.NEW_TRANSP); themeParametersHolder = new ThemeParametersHolder(templateIdString, newColorString, newHeaderColorString, newBgColorString, newFontColorString, newHeaderFontColorString, familyHeaderFont, weightHeaderFont, sizeHeaderFontString, familyFont, weightFont, sizeFontString, newBorderColorString, newTranspString, toolsetName, version); oldColor = null != oldColorString ? Integer.parseInt(oldColorString.replaceFirst("#", ""), 16) : 0; newColor = null != newColorString ? Integer.parseInt(newColorString.replaceFirst("#", ""), 16) : 0; oldHeaderColor = null != oldHeaderColorString ? Integer.parseInt(oldHeaderColorString.replaceFirst("#", ""), 16) : 0; newHeaderColor = null != newHeaderColorString ? Integer.parseInt(newHeaderColorString.replaceFirst("#", ""), 16) : 0; oldBgColor = null != oldBgColorString ? Integer.parseInt(oldBgColorString.replaceFirst("#", ""), 16) : 0; newBgColor = null != newBgColorString ? Integer.parseInt(newBgColorString.replaceFirst("#", ""), 16) : 0; oldFontColor = null != oldFontColorString ? Integer.parseInt(oldFontColorString.replaceFirst("#", ""), 16) : 0; newFontColor = null != newFontColorString ? Integer.parseInt(newFontColorString.replaceFirst("#", ""), 16) : 0; oldHeaderFontColor = null != oldHeaderFontColorString ? Integer.parseInt(oldHeaderFontColorString.replaceFirst("#", ""), 16) : 0; newHeaderFontColor = null != newHeaderFontColorString ? Integer.parseInt(newHeaderFontColorString.replaceFirst("#", ""), 16) : 0; oldBorderColor = null != oldBorderColorString ? Integer.parseInt(oldBorderColorString.replaceFirst("#", ""), 16) : 0; newBorderColor = null != newBorderColorString ? Integer.parseInt(newBorderColorString.replaceFirst("#", ""), 16) : 0; oldTransp = null != oldTranspString ? Integer.parseInt(oldTranspString) : 0; newTransp = null != newTranspString ? Integer.parseInt(newTranspString) : 0; sizeHeaderFontDiff = (byte) ((null != sizeHeaderFontString ? Byte.parseByte(sizeHeaderFontString) : 11) - 11); sizeFontDiff = (byte) ((null != sizeFontString ? Byte.parseByte(sizeFontString) : 11) - 11); } catch (Exception e) { logger.error(e); } int oldR = (oldColor >> 16) & 0xff; int oldG = (oldColor >> 8) & 0xff; int oldB = oldColor & 0xff; int newR = (newColor >> 16) & 0xff; int newG = (newColor >> 8) & 0xff; int newB = newColor & 0xff; int oldHeaderR = (oldHeaderColor >> 16) & 0xff; int oldHeaderG = (oldHeaderColor >> 8) & 0xff; int oldHeaderB = oldHeaderColor & 0xff; int newHeaderR = (newHeaderColor >> 16) & 0xff; int newHeaderG = (newHeaderColor >> 8) & 0xff; int newHeaderB = newHeaderColor & 0xff; int oldBgR = (oldBgColor >> 16) & 0xff; int oldBgG = (oldBgColor >> 8) & 0xff; int oldBgB = oldBgColor & 0xff; int newBgR = (newBgColor >> 16) & 0xff; int newBgG = (newBgColor >> 8) & 0xff; int newBgB = newBgColor & 0xff; int oldFontR = (oldFontColor >> 16) & 0xff; int oldFontG = (oldFontColor >> 8) & 0xff; int oldFontB = oldFontColor & 0xff; int newFontR = (newFontColor >> 16) & 0xff; int newFontG = (newFontColor >> 8) & 0xff; int newFontB = newFontColor & 0xff; int oldHeaderFontR = (oldHeaderFontColor >> 16) & 0xff; int oldHeaderFontG = (oldHeaderFontColor >> 8) & 0xff; int oldHeaderFontB = oldHeaderFontColor & 0xff; int newHeaderFontR = (newHeaderFontColor >> 16) & 0xff; int newHeaderFontG = (newHeaderFontColor >> 8) & 0xff; int newHeaderFontB = newHeaderFontColor & 0xff; int oldBorderR = (oldBorderColor >> 16) & 0xff; int oldBorderG = (oldBorderColor >> 8) & 0xff; int oldBorderB = oldBorderColor & 0xff; int newBorderR = (newBorderColor >> 16) & 0xff; int newBorderG = (newBorderColor >> 8) & 0xff; int newBorderB = newBorderColor & 0xff; ServletContext servletContext = session.getServletContext(); WebApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); ResourcesProcessorFactory resourcesProcessorFactory = (ResourcesProcessorFactory) context .getBean("processorFactory"); ResourcesHolder schemaHolder; ResourcesProcessor processor; /* schemaHolder = getResourcesHolderForProcessing(templateId, ""); processor = resourcesProcessorFactory.getResourcesProcessor(schemaHolder, context);*/ //operation definition //hints HashMap hints = new HashMap(); hints.put(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); hints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE); hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); hints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY); RenderingHints renderingHints = new RenderingHints(hints); int rDiff = newR - oldR; int gDiff = newG - oldG; int bDiff = newB - oldB; int rHeaderDiff = newHeaderR - oldHeaderR; int gHeaderDiff = newHeaderG - oldHeaderG; int bHeaderDiff = newHeaderB - oldHeaderB; int rBgDiff = newBgR - oldBgR; int gBgDiff = newBgG - oldBgG; int bBgDiff = newBgB - oldBgB; int rFontDiff = newFontR - oldFontR; int gFontDiff = newFontG - oldFontG; int bFontDiff = newFontB - oldFontB; int rHeaderFontDiff = newHeaderFontR - oldHeaderFontR; int gHeaderFontDiff = newHeaderFontG - oldHeaderFontG; int bHeaderFontDiff = newHeaderFontB - oldHeaderFontB; int rBorderDiff = newBorderR - oldBorderR; int gBorderDiff = newBorderG - oldBorderG; int bBorderDiff = newBorderB - oldBorderB; float transparencyDiff = newTransp - oldTransp; float[] offsets = { rDiff, gDiff, bDiff, 0f }; float[] offsetsHeader = { rHeaderDiff, gHeaderDiff, bHeaderDiff, 0f }; float[] offsetsBg = { rBgDiff, gBgDiff, bBgDiff, 0f }; float[] offsetsFont = { rFontDiff, gFontDiff, bFontDiff, 0f }; float[] offsetsHeaderFont = { rHeaderFontDiff, gHeaderFontDiff, bHeaderFontDiff, 0f }; float[] offsetsBorder = { rBorderDiff, gBorderDiff, bBorderDiff, 0f }; float[] offsetsTranceparency = (0 == transparencyDiff) ? null : new float[] { 0, 0, 0, transparencyDiff }; float[] offsetsShadowTransparency = { 0, 0, 0, transparencyDiff / 5 }; float liteDivider = 2.5f; float[] liteoffsets = { rDiff / liteDivider, gDiff / liteDivider, bDiff / liteDivider, 0f }; float[] scaleFactors = { 1.0f, 1.0f, 1.0f, 1.0f }; ExtJSRescaleOp brightenOp = new ExtJSRescaleOp(scaleFactors, // 1 ,1 ,1 offsets, renderingHints); ExtJSRescaleOp headerOp = new ExtJSRescaleOp(scaleFactors, // 1 ,1 ,1 offsetsHeader, renderingHints); ExtJSRescaleOp liteOp = new ExtJSRescaleOp(scaleFactors, // 1 ,1 ,1 liteoffsets, renderingHints); ExtJSRescaleOp bgOp = new ExtJSRescaleOp(scaleFactors, // 1 ,1 ,1 offsetsBg, renderingHints); ExtJSRescaleOp fontOp = new ExtJSRescaleOp(scaleFactors, // 1 ,1 ,1 offsetsFont, renderingHints); ExtJSRescaleOp headerFontOp = new ExtJSRescaleOp(scaleFactors, // 1 ,1 ,1 offsetsHeaderFont, renderingHints); ExtJSRescaleOp borderOp = new ExtJSRescaleOp(scaleFactors, // 1 ,1 ,1 offsetsBorder, renderingHints); ExtJSRescaleOp transparencyOp = (0 == transparencyDiff) ? null : new ExtJSRescaleOp(scaleFactors, // 1 ,1 ,1 offsetsTranceparency, renderingHints); ExtJSRescaleOp shadowTransparencyOp = null/*new ExtJSRescaleOp( scaleFactors,// 1 ,1 ,1 offsetsShadowTransparency, renderingHints)*/; /* ShiftOp shiftOp = new ShiftOp(new float[]{1, 1, 1, 1} , offsets, renderingHints, true); int csRGB = ColorSpace.CS_sRGB; int csGRAY = ColorSpace.CS_GRAY; ColorSpace srcCS = ColorSpace.getInstance(csRGB); ColorSpace destCS = ColorSpace.getInstance(csGRAY); */ //operation with inversion of color #for heading font color ForegroundShiftOp foregroundOp = new ForegroundShiftOp(newR, newG, newB); AffineTransformOp affineTransformOp = null/*new AffineTransformOp( AffineTransform.getScaleInstance(2,2), AffineTransformOp.TYPE_BICUBIC)*/; //end operation definition //get toolset holder ResourceHolderPool holderToolsetPool = this.holderToolsetPool; ResourcesHolder toolsetSchemaHolder = holderToolsetPool.checkOut(); // //get drawable holder ResourceHolderPool holderDrawablePool = this.holderDrawablePool; ResourcesHolder drawableSchemaHolder = holderDrawablePool.checkOut(); // /* process(processor, templateId, schemaHolder, brightenOp, foregroundOp, liteOp, bgOp, fontOp, transparencyOp, session, borderOp, affineTransformOp, headerFontOp, shadowTransparencyOp, headerOp, toolsetSchemaHolder, toolsetName, familyHeaderFont, weightHeaderFont, sizeHeaderFontDiff, familyFont, weightFont, sizeFontDiff, drawableSchemaHolder, "3.2"*//*version*//*); if (!"3.2".equals(version)){*/ schemaHolder = getResourcesHolderForProcessing(templateId, version); processor = resourcesProcessorFactory.getResourcesProcessor(schemaHolder, context); process(processor, themeParametersHolder, templateId, schemaHolder, brightenOp, foregroundOp, liteOp, bgOp, fontOp, transparencyOp, session, borderOp, affineTransformOp, headerFontOp, shadowTransparencyOp, headerOp, toolsetSchemaHolder, toolsetName, familyHeaderFont, weightHeaderFont, sizeHeaderFontDiff, familyFont, weightFont, sizeFontDiff, drawableSchemaHolder, version); /* }*/ logger.info("ProcessThemeController ! IP=" + httpServletRequest.getRemoteAddr()); return new ModelAndView("json/success"); }