Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Charles David2017-06-01 13:48:42 +0000
committerPierre-Charles David2017-06-06 11:38:10 +0000
commit9261d08efd5a8090ad7f6959fb5b90d3c21c7cc1 (patch)
tree07d07bb821af1bbc5ffd6a3abfe57ba20b3afae6 /plugins
parent02dc7851ae4cdb0592d501ef76d62125433d0aed (diff)
downloadorg.eclipse.sirius-9261d08efd5a8090ad7f6959fb5b90d3c21c7cc1.tar.gz
org.eclipse.sirius-9261d08efd5a8090ad7f6959fb5b90d3c21c7cc1.tar.xz
org.eclipse.sirius-9261d08efd5a8090ad7f6959fb5b90d3c21c7cc1.zip
[517407] Fix exported image scaling for JPEG/PNG
bug: 517407 Change-Id: Ic433166b620d0a7b7338b49fd13f03016d4381fc Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/render/SiriusDiagramImageGenerator.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/render/SiriusDiagramImageGenerator.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/render/SiriusDiagramImageGenerator.java
index 8a246ccd6d..ce09c46053 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/render/SiriusDiagramImageGenerator.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/render/SiriusDiagramImageGenerator.java
@@ -20,7 +20,6 @@ import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.SWTGraphics;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.PrecisionRectangle;
-import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
import org.eclipse.gmf.runtime.diagram.ui.image.PartPositionInfo;
import org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants;
@@ -78,6 +77,7 @@ public class SiriusDiagramImageGenerator extends DiagramImageGenerator {
Graphics2D g2d = awtImage.createGraphics();
g2d.setColor(Color.white);
g2d.fillRect(0, 0, awtImage.getWidth(), awtImage.getHeight());
+ g2d.scale(factor, factor);
// Check anti-aliasing preference
IPreferenceStore preferenceStore = (IPreferenceStore) getDiagramEditPart().getDiagramPreferencesHint().getPreferenceStore();
@@ -90,7 +90,8 @@ public class SiriusDiagramImageGenerator extends DiagramImageGenerator {
g2d.clip(new java.awt.Rectangle(0, 0, awtImage.getWidth(), awtImage.getHeight()));
- Graphics graphics = new SiriusGraphicsToGraphics2DAdaptor(g2d, new Rectangle(0, 0, awtImage.getWidth(), awtImage.getHeight()));
+ // The sourceRect has already been scaled to the output canvas size, but we need to make sure all the figures are inside the clipping region
+ Graphics graphics = new SiriusGraphicsToGraphics2DAdaptor(g2d, new PrecisionRectangle(0, 0, rect.width / factor, rect.height / factor));
RenderedMapModeGraphics mapModeGraphics = new RenderedMapModeGraphics(graphics, mm);

Back to the top