diff --git a/CHANGELOG b/CHANGELOG index 1b1995652f440d726824eef0ca1bdd2ef8ad8d27..0e082e6b9dd1a51487234bb8a6423ecb725f04a3 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,7 @@ minerva (16.0.0~alpha.2) stable; urgency=medium * Backward incompatibility: debian package cannot be upgraded from version prior to 12.1.0 (#1464) * Small improvement: homomultimer information is provided in API (#1468) + * Small improvement: glyph quality is improved (#1458) -- Piotr Gawron Fri, 26 Mar 2021 10:00:00 +0200 diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/ElementConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/ElementConverter.java index 6967e9a0146881459124346177fdc47414bc774e..3667b9498667edbdfc0d54a220e636e76a1e0dfc 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/ElementConverter.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/ElementConverter.java @@ -99,10 +99,11 @@ public abstract class ElementConverter extends BioEntityConve protected void drawGlyph(T bioEntity, Graphics2D graphics) throws DrawingException { try { Image img = ImageIO.read(new ByteArrayInputStream(bioEntity.getGlyph().getFile().getFileContent())); - graphics.drawImage(img, + + Image scaledImage = img.getScaledInstance(bioEntity.getWidth().intValue(), bioEntity.getHeight().intValue(), Image.SCALE_SMOOTH); + + graphics.drawImage(scaledImage, bioEntity.getX().intValue(), bioEntity.getY().intValue(), - (int) (bioEntity.getX() + bioEntity.getWidth()), (int) (bioEntity.getY() + bioEntity.getHeight()), - 0, 0, img.getWidth(null), img.getHeight(null), null); } catch (IOException e) { throw new DrawingException( diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/GraphicsTestFunctions.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/GraphicsTestFunctions.java index b466e6890604ee0794c0d34645646a1394491b9d..4bb1ac30ee53d1994d83191ca689c0003d863295 100644 --- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/GraphicsTestFunctions.java +++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/GraphicsTestFunctions.java @@ -16,6 +16,7 @@ import lcsb.mapviewer.common.UnitTestFailedWatcher; import lcsb.mapviewer.model.graphics.*; import lcsb.mapviewer.model.map.compartment.PathwayCompartment; import lcsb.mapviewer.model.map.compartment.SquareCompartment; +import lcsb.mapviewer.model.map.layout.graphics.LayerText; import lcsb.mapviewer.model.map.modifier.Catalysis; import lcsb.mapviewer.model.map.reaction.*; import lcsb.mapviewer.model.map.species.*; @@ -93,6 +94,19 @@ public abstract class GraphicsTestFunctions { return complex; } + protected LayerText createText() { + LayerText layerText = new LayerText(); + layerText.setX(256.0); + layerText.setY(79.0); + layerText.setWidth(233.0); + layerText.setHeight(188.0); + layerText.setZ(0); + layerText.setNotes("asd as"); + layerText.setColor(Color.BLACK); + return layerText; + } + + protected List removeAlpha(List allValues) { List result = new ArrayList<>(); for (Color color : allValues) { diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/NormalImageGeneratorTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/NormalImageGeneratorTest.java index 6e42678c873486fd6d48975f02c348a23f39b0b0..577bb7b43d3200e255f04feffffbaf26d3b63497 100644 --- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/NormalImageGeneratorTest.java +++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/NormalImageGeneratorTest.java @@ -1,8 +1,11 @@ package lcsb.mapviewer.converter.graphics; -import java.awt.*; +import java.awt.Color; +import java.awt.Desktop; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; +import java.io.File; +import java.nio.file.Files; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -10,12 +13,12 @@ import org.junit.*; import lcsb.mapviewer.commands.CreateHierarchyCommand; import lcsb.mapviewer.converter.graphics.AbstractImageGenerator.Params; +import lcsb.mapviewer.model.cache.UploadedFileEntry; import lcsb.mapviewer.model.graphics.PolylineData; -import lcsb.mapviewer.model.map.layout.graphics.Layer; -import lcsb.mapviewer.model.map.layout.graphics.LayerText; +import lcsb.mapviewer.model.map.layout.graphics.*; import lcsb.mapviewer.model.map.model.Model; import lcsb.mapviewer.model.map.model.ModelFullIndexed; -import lcsb.mapviewer.model.map.species.Complex; +import lcsb.mapviewer.model.map.species.*; public class NormalImageGeneratorTest extends GraphicsTestFunctions { static Logger logger = LogManager.getLogger(); @@ -33,27 +36,15 @@ public class NormalImageGeneratorTest extends GraphicsTestFunctions { model.setWidth(526); model.setHeight(346); - LayerText compAlias = new LayerText(); - compAlias.setX(256.0); - compAlias.setY(79.0); - compAlias.setWidth(233.0); - compAlias.setHeight(188.0); - compAlias.setNotes("asd as"); - compAlias.setColor(Color.BLACK); + LayerText layerText = createText(); Layer layer = new Layer(); - layer.addLayerText(compAlias); + layer.addLayerText(layerText); layer.setVisible(true); model.addLayer(layer); layer.addLayerLine(new PolylineData(new Point2D.Double(0, 0), new Point2D.Double(100, 100))); - Complex alias = new Complex("1"); - alias.setName("a"); - alias.setX(300); - alias.setY(90); - alias.setWidth(100); - alias.setHeight(50); - model.addElement(alias); + model.addElement(createComplex()); return model; }