Search in sources :

Example 91 with GraphicsEnvironment

use of java.awt.GraphicsEnvironment in project knime-core by knime.

the class DecTreeToImageNodeModel method execute.

/**
 * {@inheritDoc}
 */
@Override
public PortObject[] execute(final PortObject[] inPorts, final ExecutionContext exec) throws CanceledExecutionException, Exception {
    exec.setMessage("Decision Tree To Image: Loading model...");
    PMMLPortObject port = (PMMLPortObject) inPorts[0];
    List<Node> models = port.getPMMLValue().getModels(PMMLModelType.TreeModel);
    if (models.isEmpty()) {
        String msg = "Decision Tree evaluation failed: " + "No tree model found.";
        LOGGER.error(msg);
        throw new RuntimeException(msg);
    }
    PMMLDecisionTreeTranslator trans = new PMMLDecisionTreeTranslator();
    port.initializeModelTranslator(trans);
    m_decTree = trans.getDecisionTree();
    m_decTree.resetColorInformation();
    String colorColumn = null;
    if (null != inPorts[1]) {
        BufferedDataTable inData = (BufferedDataTable) inPorts[1];
        // get column with color information
        for (DataColumnSpec s : inData.getDataTableSpec()) {
            if (s.getColorHandler() != null) {
                colorColumn = s.getName();
                break;
            }
        }
        m_decTree.setColorColumn(colorColumn);
        for (DataRow thisRow : inData) {
            m_decTree.addCoveredColor(thisRow, inData.getDataTableSpec());
        }
    }
    // create PNG via streamed string
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    int width = m_settings.getWidth();
    int height = m_settings.getHeight();
    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
    BufferedImage image = null;
    if (env.isHeadlessInstance()) {
        image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
    } else {
        // create compatible image for better performance
        GraphicsConfiguration gfxConf = env.getDefaultScreenDevice().getDefaultConfiguration();
        // image = gfxConf.createCompatibleImage(width, height);
        // with binary transparency
        image = gfxConf.createCompatibleImage(width, height, Transparency.BITMASK);
    // with transparency
    // image = gfxConf.createCompatibleImage(width, height,
    // Transparency.TRANSLUCENT);
    }
    Graphics2D g = (Graphics2D) image.getGraphics();
    DecisionTreeNode root = null != getDecisionTree() ? getDecisionTree().getRootNode() : null;
    DecTreeGraphView graph = new DecTreeToImageGraphView(root, colorColumn, m_settings);
    // draw graph
    graph.getView().paint(g);
    // write png
    ImageIO.write(image, "png", os);
    ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
    m_imageContent = new PNGImageContent(is);
    ImagePortObjectSpec outSpec = new ImagePortObjectSpec(PNGImageContent.TYPE);
    // return image object
    PortObject po = new ImagePortObject(m_imageContent, outSpec);
    return new PortObject[] { po };
}
Also used : PNGImageContent(org.knime.core.data.image.png.PNGImageContent) PMMLDecisionTreeTranslator(org.knime.base.node.mine.decisiontree2.PMMLDecisionTreeTranslator) ImagePortObjectSpec(org.knime.core.node.port.image.ImagePortObjectSpec) DecisionTreeNode(org.knime.base.node.mine.decisiontree2.model.DecisionTreeNode) Node(org.w3c.dom.Node) ByteArrayOutputStream(java.io.ByteArrayOutputStream) GraphicsEnvironment(java.awt.GraphicsEnvironment) ImagePortObject(org.knime.core.node.port.image.ImagePortObject) DataRow(org.knime.core.data.DataRow) BufferedImage(java.awt.image.BufferedImage) GraphicsConfiguration(java.awt.GraphicsConfiguration) Graphics2D(java.awt.Graphics2D) DataColumnSpec(org.knime.core.data.DataColumnSpec) DecTreeGraphView(org.knime.base.node.mine.decisiontree2.view.DecTreeGraphView) PMMLPortObject(org.knime.core.node.port.pmml.PMMLPortObject) ByteArrayInputStream(java.io.ByteArrayInputStream) BufferedDataTable(org.knime.core.node.BufferedDataTable) PortObject(org.knime.core.node.port.PortObject) PMMLPortObject(org.knime.core.node.port.pmml.PMMLPortObject) ImagePortObject(org.knime.core.node.port.image.ImagePortObject) DecisionTreeNode(org.knime.base.node.mine.decisiontree2.model.DecisionTreeNode)

Example 92 with GraphicsEnvironment

use of java.awt.GraphicsEnvironment in project Lucee by lucee.

the class Image method toBufferedImage.

// This method returns a buffered image with the contents of an image
public static BufferedImage toBufferedImage(java.awt.Image image) {
    if (image instanceof BufferedImage) {
        return (BufferedImage) image;
    }
    // This code ensures that all the pixels in the image are loaded
    image = new ImageIcon(image).getImage();
    // Determine if the image has transparent pixels; for this method's
    boolean hasAlpha = hasAlpha(image);
    // Create a buffered image with a format that's compatible with the screen
    BufferedImage bimage = null;
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    try {
        // Determine the type of transparency of the new buffered image
        int transparency = Transparency.OPAQUE;
        if (hasAlpha) {
            transparency = Transparency.BITMASK;
        }
        // Create the buffered image
        GraphicsDevice gs = ge.getDefaultScreenDevice();
        GraphicsConfiguration gc = gs.getDefaultConfiguration();
        bimage = gc.createCompatibleImage(image.getWidth(null), image.getHeight(null), transparency);
    } catch (HeadlessException e) {
    // The system does not have a screen
    }
    if (bimage == null) {
        // Create a buffered image using the default color model
        int type = BufferedImage.TYPE_INT_RGB;
        if (hasAlpha) {
            type = BufferedImage.TYPE_INT_ARGB;
        }
        bimage = new BufferedImage(image.getWidth(null), image.getHeight(null), type);
    }
    // Copy image to buffered image
    Graphics g = bimage.createGraphics();
    // Paint the image onto the buffered image
    g.drawImage(image, 0, 0, null);
    g.dispose();
    return bimage;
}
Also used : Graphics(java.awt.Graphics) ImageIcon(javax.swing.ImageIcon) GraphicsDevice(java.awt.GraphicsDevice) HeadlessException(java.awt.HeadlessException) GraphicsEnvironment(java.awt.GraphicsEnvironment) BufferedImage(java.awt.image.BufferedImage) Point(java.awt.Point) GraphicsConfiguration(java.awt.GraphicsConfiguration)

Example 93 with GraphicsEnvironment

use of java.awt.GraphicsEnvironment in project Lucee by lucee.

the class FontUtil method getAvailableFonts.

private static Array getAvailableFonts(boolean duplicate) {
    synchronized (sync) {
        if (fonts == null) {
            fonts = new ArrayImpl();
            GraphicsEnvironment graphicsEvn = GraphicsEnvironment.getLocalGraphicsEnvironment();
            Font[] availableFonts = graphicsEvn.getAllFonts();
            for (int i = 0; i < availableFonts.length; i++) {
                fonts.appendEL(availableFonts[i]);
            }
        }
        if (!duplicate)
            return fonts;
        return (Array) Duplicator.duplicate(fonts, false);
    }
}
Also used : Array(lucee.runtime.type.Array) ArrayImpl(lucee.runtime.type.ArrayImpl) GraphicsEnvironment(java.awt.GraphicsEnvironment) Font(java.awt.Font)

Aggregations

GraphicsEnvironment (java.awt.GraphicsEnvironment)93 GraphicsDevice (java.awt.GraphicsDevice)46 GraphicsConfiguration (java.awt.GraphicsConfiguration)44 BufferedImage (java.awt.image.BufferedImage)24 VolatileImage (java.awt.image.VolatileImage)21 Dimension (java.awt.Dimension)17 Graphics2D (java.awt.Graphics2D)17 Point (java.awt.Point)12 Font (java.awt.Font)11 Rectangle (java.awt.Rectangle)11 Insets (java.awt.Insets)7 File (java.io.File)7 Frame (java.awt.Frame)6 Toolkit (java.awt.Toolkit)6 AffineTransform (java.awt.geom.AffineTransform)6 HeadlessException (java.awt.HeadlessException)5 Color (java.awt.Color)3 Container (java.awt.Container)3 DisplayMode (java.awt.DisplayMode)3 GradientPaint (java.awt.GradientPaint)3