/** * Returns the associated ImageComponent2D object * * @return The associated ImageComponent2D object */ public ImageComponent2D getImage() { if (imageComponent == null) imageComponent = new ImageComponent2D(imageComponentFormat, bufferedImage, byRef, yUp); return imageComponent; }
@Override protected org.scijava.java3d.SceneGraphObject createNode() { return new ImageComponent2D( format, bufferedImage, byReference, yUp ); } }
/** * Returns the scaled ImageComponent2D object * * @param width The desired width * @param height The desired height * * @return The scaled ImageComponent2D object */ public ImageComponent2D getScaledImage(int width, int height) { if (bufferedImage.getWidth() == width && bufferedImage.getHeight() == height) return getImage(); else return(new ImageComponent2D(imageComponentFormat, getScaledImage(bufferedImage, width, height), byRef, yUp)); }
/** * @deprecated replaced with cloneNodeComponent(boolean forceDuplicate) */ @Override public NodeComponent cloneNodeComponent() { ImageComponent2DRetained rt = (ImageComponent2DRetained) retained; ImageComponent2D img = new ImageComponent2D(rt.getFormat(), rt.width, rt.height, rt.byReference, rt.yUp); img.duplicateNodeComponent(this); return img; }
/** * Returns the scaled ImageComponent2D object * * @param xScale The X scaling factor * @param yScale The Y scaling factor * * @return The scaled ImageComponent2D object */ public ImageComponent2D getScaledImage(float xScale, float yScale) { if (xScale == 1.0f && yScale == 1.0f) return getImage(); else return(new ImageComponent2D(imageComponentFormat, getScaledImage(bufferedImage, xScale, yScale), byRef, yUp)); }
new ImageComponent2D(ImageComponent.FORMAT_RGBA, bImage);
@Override ImageComponent2D createImageComponent(final byte[] pix, final int w, final int h) { final int[] bandOffset = { 0, 1, 2, 3 }; final DataBufferByte db = new DataBufferByte(pix, w * h * 4, 0); final WritableRaster raster = Raster.createInterleavedRaster(db, w, h, w * 4, 4, bandOffset, null); final BufferedImage bImage = new BufferedImage(rgbCM, raster, false, null); final ImageComponent2D bComp = new ImageComponent2D(ImageComponent.FORMAT_RGBA, w, h, true, true); bComp.setCapability(ImageComponent.ALLOW_IMAGE_WRITE); bComp.set(bImage); return bComp; } }
@Override ImageComponent2D createImageComponent(final byte[] pix, final int w, final int h) { final DataBufferByte db = new DataBufferByte(pix, w * h, 0); final SampleModel smod = greyCM.createCompatibleSampleModel(w, h); final WritableRaster raster = Raster.createWritableRaster(smod, db, null); final BufferedImage bImage = new BufferedImage(greyCM, raster, false, null); final ImageComponent2D bComp = new ImageComponent2D(ImageComponent.FORMAT_CHANNEL8, w, h, true, true); bComp.setCapability(ImageComponent.ALLOW_IMAGE_WRITE); bComp.set(bImage); return bComp; } }
scaledImageComponents[i] = new ImageComponent2D( imageComponentFormat, scaledBufferedImages[i], byRef, yUp); scaledImageComponents[0] = new ImageComponent2D( imageComponentFormat, scaledBufferedImages[0], byRef, yUp);
/** * Creates an offscreen buffer to be attached to the heavyweight * buffer. Buffer is created 'byreference' * * @param width the width of the buffer. * @param height the height of the buffer. */ private void createOffScreenBuffer(int width, int height) { computePhysicalDimensions(); // this.canvas.setDoubleBufferEnable( false ); java.awt.image.BufferedImage bImage = new java.awt.image.BufferedImage(width, height, java.awt.image.BufferedImage.TYPE_INT_ARGB); org.scijava.java3d.ImageComponent2D image = new org.scijava.java3d.ImageComponent2D(org.scijava.java3d.ImageComponent2D.FORMAT_RGBA8, bImage, true, false ); image.setCapability(image.ALLOW_IMAGE_READ); image.setCapability(image.ALLOW_IMAGE_WRITE); this.canvas.stopRenderer(); // offscreenrendering might occur even if the renderer is stopped. For that reason, i'm waiting for an hypothetical offscreen render to finish before setting offscreen rendering. // Otherwise, rendering will stop with an exception. this.canvas.waitForOffScreenRendering(); this.canvas.setOffScreenBuffer(image); this.canvas.startRenderer(); }
private Texture2D getTexture(final CubeData cdata, final int index) { final Texture2D tex = new Texture2D(Texture.BASE_LEVEL, TEX_MODE, SIZE, SIZE); final ImageComponent2D pArray = new ImageComponent2D(COMP_TYPE, SIZE, SIZE, BY_REF, Y_UP); pArray.set(cdata.images[index]); tex.setImage(0, pArray); tex.setEnable(true); tex.setMinFilter(Texture.BASE_LEVEL_LINEAR); tex.setMagFilter(Texture.BASE_LEVEL_LINEAR); tex.setBoundaryModeS(Texture.CLAMP); tex.setBoundaryModeT(Texture.CLAMP); return tex; }
@Override public void writeConstructorParams( DataOutput out ) throws IOException { super.writeConstructorParams( out ); ImageComponent2D ic = ((ImageComponent2D)node); // If the BufferedImage is associated with the ImageComponent2D by // reference then we don't know much about it, so it'd be hard to // save. So we copy it into an ImageComponent2D and then copy it // out. It comes out in a known format so it's easier to save. if ( ic.isByReference() ) { ImageComponent2D noByRef = new ImageComponent2D( ic.getFormat(), ic.getRenderedImage(), false, ic.isYUp() ); bufferedImage = noByRef.getImage(); } else bufferedImage = ic.getImage(); writeBufferedImage( out, bufferedImage ); }
public Texture getTexture() { Texture2D tex = new Texture2D(Texture.BASE_LEVEL, TEX_MODE, w, h); bComp = new ImageComponent2D(COMP_TYPE, w, h, BY_REF, Y_UP); bComp.setCapability(ImageComponent.ALLOW_IMAGE_WRITE); bComp.set(bImage); tex.setImage(0, bComp); tex.setEnable(true); tex.setMinFilter(Texture.BASE_LEVEL_LINEAR); tex.setMagFilter(Texture.BASE_LEVEL_LINEAR); tex.setBoundaryModeS(Texture.CLAMP); tex.setBoundaryModeT(Texture.CLAMP); return tex; }
public Texture getTexture() { Texture2D tex = new Texture2D(Texture.BASE_LEVEL, TEX_MODE, w, h); bComp = new ImageComponent2D(COMP_TYPE, w, h, BY_REF, Y_UP); bComp.setCapability(ImageComponent.ALLOW_IMAGE_WRITE); bComp.set(createImage()); tex.setImage(0, bComp); tex.setEnable(true); tex.setMinFilter(Texture.BASE_LEVEL_LINEAR); tex.setMagFilter(Texture.BASE_LEVEL_LINEAR); tex.setBoundaryModeS(Texture.CLAMP); tex.setBoundaryModeT(Texture.CLAMP); return tex; }
new ImageComponent2D(ImageComponent.FORMAT_RGBA, bImage);
BufferedImage.TYPE_INT_ARGB); final ImageComponent2D buffer = new ImageComponent2D(ImageComponent.FORMAT_RGBA, bImage);