BufferedImage bi = new BufferedImage(Math.round(dWidth), Math.round(dHeight), BufferedImage.TYPE_INT_RGB);
Graphics2D draw = bi.createGraphics();
一下代码为了保证图形的质量,消除锯齿等。
RenderingHints qualityHints = new RenderingHints(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
qualityHints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
qualityHints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
qualityHints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
qualityHints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DISABLE);
draw.setRenderingHints(qualityHints);
Color backgroundColor = bgColor;
draw.setBackground(backgroundColor);
draw.clearRect(0, 0, 5100, 5100);
导出为jpg下载
ByteArrayOutputStream imgs = new ByteArrayOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(imgs);
// 返回的对象对给定 BufferedImage 所做的编码工作将是可靠的
JPEGEncodeParam jep = encoder.getDefaultJPEGEncodeParam(bi);
/*
* 创建替代当前已建量化表的新量化表。它也将 Component QTable 映射更新为当前已编码 COLOR_ID 的缺省值。
* 根据质量参数的不同,创建的量化表介于压缩比很高但质量很差 (0.0) 与压缩比低但质量很好 (1.0) 之间。
*/
jep.setQuality(1.0f, true);
// 将返回由 JPEGDecodeParam 对象初始化而得到的新 JPEGEncodeParam 对象。
// 所有主要的信息将通过 JPEGDecodeParam(标记、表、映射)初始化。
encoder.setJPEGEncodeParam(jep);
// 将 BufferedImage 作为 JPEG 数据流进行编码。
encoder.encode(bi);
response.getOutputStream().write(imgs.toByteArray());
图片缩放
Image img = Image.getInstance(imgs.toByteArray());
img.scalePercent(percent);
顺便说下xml命名空间,xml有命名空间,则查找xml中的属性时需要使用命名空间,否则查不着
Document document = DocumentHelper.parseText(xml);
Map<String, String> xmlMap = new HashMap<String, String>();
xmlMap.put("mo", "http://ee.develop.com/");
XPath xpath = document.createXPath("//mo:state");
xpath.setNamespaceURIs(xmlMap);
List<Element> states = xpath.selectNodes(document);
多层节点路径使用
xpath = document.createXPath("//mo:state/mo:condition");