Author: kono
Date: 2010-06-28 16:55:58 -0700 (Mon, 28 Jun 2010)
New Revision: 20707
Modified:
corelibs/trunk/render.immed/src/cytoscape/render/immed/GraphGraphics.java
Log:
Image export bugs fixed. Still needs some optimizations.
Modified:
corelibs/trunk/render.immed/src/cytoscape/render/immed/GraphGraphics.java
===================================================================
--- corelibs/trunk/render.immed/src/cytoscape/render/immed/GraphGraphics.java
2010-06-28 23:55:19 UTC (rev 20706)
+++ corelibs/trunk/render.immed/src/cytoscape/render/immed/GraphGraphics.java
2010-06-28 23:55:58 UTC (rev 20707)
@@ -329,16 +329,39 @@
m_g2d.setPaint(bgPaint);
m_g2d.fillRect(0, 0, image.getWidth(null),
image.getHeight(null));
m_g2d.setComposite(origComposite);
+
+ // For detailed view, render high quality image as much as
possible.
+
+ // Antialiasing is ON
m_g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
+
+ // Rendering quality is HIGH.
m_g2d.setRenderingHint(RenderingHints.KEY_RENDERING,
- RenderingHints.VALUE_RENDER_SPEED);
+ RenderingHints.VALUE_RENDER_QUALITY);
+
+ // High quality alpha blending is ON.
+ m_g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,
+
RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
+
+ // High quality color rendering is ON.
+ m_g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING,
+ RenderingHints.VALUE_COLOR_RENDER_QUALITY);
+
+ m_g2d.setRenderingHint(RenderingHints.KEY_DITHERING,
+ RenderingHints.VALUE_DITHER_ENABLE);
+
+ m_g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
+ RenderingHints.VALUE_INTERPOLATION_BICUBIC);
+
+ // Text antialiasing is ON.
m_g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
m_g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,
RenderingHints.VALUE_FRACTIONALMETRICS_ON);
m_g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL,
RenderingHints.VALUE_STROKE_PURE);
+
m_g2d.setStroke(new BasicStroke(0.0f, BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND, 10.0f));
m_currXform.setToTranslation(0.5d * image.getWidth(null), 0.5d
* image
@@ -1979,14 +2002,9 @@
m_g2d.translate(xOffset, yOffset);
if(paint instanceof TexturePaint) {
- final BufferedImage be = ((TexturePaint)
paint).getImage();
- final double scaleX =
shape.getBounds2D().getWidth()/be.getWidth();
- final double scaleY =
shape.getBounds2D().getHeight()/be.getHeight();
- // TODO: Currently, scaling uses best-quality algorithm
(BICUBIC).
- // Need to provide user option to switch between
quality VS speed.
- m_g2d.drawImage(be,
- new
AffineTransformOp(AffineTransform.getScaleInstance(scaleX,scaleY),
AffineTransformOp.TYPE_BICUBIC),
- shape.getBounds().x,
shape.getBounds().y);
+ final BufferedImage bImg = ((TexturePaint)
paint).getImage();
+ m_g2d.drawImage(bImg,
+ shape.getBounds().x,
shape.getBounds().y, shape.getBounds().width, shape.getBounds().height, null);
} else {
m_g2d.setPaint(paint);
m_g2d.fill(shape);
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.