Packages

 

com.aspose.imaging.fileformats.emf.emf.records

Classes

com.aspose.imaging.fileformats.emf.emf.records

Class EmfSelectObject

  • All Implemented Interfaces:
    com.aspose.imaging_internal.fileformats.emf.IRecord, Cloneable


    public final class EmfSelectObject
    extends EmfRecord

    The EMR_SELECTOBJECT record adds a graphics object to the current metafile playback device context. The object is specified either by its index in the EMF Object Table(section 3.1.1.1) or by its value from the StockObject enumeration(section 2.1.31).

    • Constructor Detail

      • EmfSelectObject

        public EmfSelectObject(EmfRecord record)

        Initializes a new instance of the EmfSelectObject class.

        Parameters:
        record - The record.
      • EmfSelectObject

        public EmfSelectObject()

        Initializes a new instance of the EmfSelectObject class.

        Code example:

        The following example shows how set the background color for EMF. It actually draws a rectangle of the background color before drawing all other objects.


        String baseFolder = "c:\\temp";
        
        // This is a helper class which does all real work.
        class Util {
            private void addBackgroundRectangleEmf(com.aspose.imaging.fileformats.emf.EmfImage image, com.aspose.imaging.Color color) {
                image.cacheData();
                com.aspose.imaging.fileformats.emf.MetaObjectList records = image.getRecords();
        
                if (records.size() < 1) {
                    return;
                }
        
                //Set Rectangle
                com.aspose.imaging.fileformats.emf.emf.records.EmfRectangle rectangle = new com.aspose.imaging.fileformats.emf.emf.records.EmfRectangle();
                rectangle.setBox(image.getHeader().getEmfHeader().getBounds());
        
                //Set Brush
                com.aspose.imaging.fileformats.emf.emf.records.EmfCreateBrushIndirect brush = new com.aspose.imaging.fileformats.emf.emf.records.EmfCreateBrushIndirect();
                brush.setLogBrush(new com.aspose.imaging.fileformats.emf.emf.objects.EmfLogBrushEx());
                brush.getLogBrush().setArgb32ColorRef(color.toArgb());
                brush.setIhBrush(1);
        
                //Select brush
                com.aspose.imaging.fileformats.emf.emf.records.EmfSelectObject selectObject = new com.aspose.imaging.fileformats.emf.emf.records.EmfSelectObject();
                selectObject.setObjectHandle(1);
        
                //Remove brush
                com.aspose.imaging.fileformats.emf.emf.records.EmfDeleteObject deleteObject = new com.aspose.imaging.fileformats.emf.emf.records.EmfDeleteObject();
                deleteObject.setObjectHandle(1);
        
                //Add records
                records.insertItem(1, brush);
                records.insertItem(2, selectObject);
                records.insertItem(3, rectangle);
                records.insertItem(4, deleteObject);
            }
        }
        
        // Here is the main example
        String[] files = new String[]{"image1.emf", "image2.wmf"};
        for (String fileName : files) {
            String inputFile = baseFolder + fileName;
            String outputFile = baseFolder + "Background_" + fileName;
            com.aspose.imaging.fileformats.emf.MetaImage image = (com.aspose.imaging.fileformats.emf.MetaImage) com.aspose.imaging.Image.load(inputFile);
            try {
                new Util().addBackgroundRectangleEmf((com.aspose.imaging.fileformats.emf.EmfImage) image, com.aspose.imaging.Color.getBlue());
                image.save(outputFile);
            } finally {
                image.close();
            }
        }
        

    • Method Detail

      • getObjectHandle

        public int getObjectHandle()

        Gets or sets 32-bit unsigned integer that specifies either the index of a graphics object in the EMF Object Table or the index of a stock object from the Consts.EmfStockObject enumeration.

      • setObjectHandle

        public void setObjectHandle(int value)

        Gets or sets 32-bit unsigned integer that specifies either the index of a graphics object in the EMF Object Table or the index of a stock object from the Consts.EmfStockObject enumeration.