public class HeadlessRenderContext extends Object implements SequenceRenderContext
A stand-alone SequenceRenderContext to make it easy to render to an image.
This class makes it very easy to render sequence information into an arbitrary graphics object without the need to fuss about with AWT or Swing components. You chose the width of the image and the region of the sequence to render. It will calculate the scale factor to ensure that the whole region of the sequence fits into that width. You can then use the context to render any number of SequenceRenderer instances to any Graphics2D instance you want, for example, to an image that's to be written out by a servlet.
HeadlessRenderContext ctxt = new HeadlessRenderContext( seq, // the sequence to render range, // a RangeLocation giving the block you want to render width // an int specifying the image width in pixles ); BufferedImage img = new BufferedImage( width, // image width (int) Math.ceil(seqRend.getDepth(ctxt), // calculated height BufferedImage.TYPE_INT_RGB // let's use RGB ); // set stuff up Graphics2D graph = img.createGraphics(); graph.setPaint(Color.WHITE); graph.fillRect(0, 0, img.getWidth(), img.getHeight()); // and now render the sequences sequenceRenderer.paint(graph, ctxt); // let's dump this out as a png ImageIO.write(image, "png", myFile);
SequenceRenderContext.BorderLAYOUT, REPAINTBOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST| Constructor and Description |
|---|
HeadlessRenderContext(Sequence seq,
RangeLocation range,
int width) |
| Modifier and Type | Method and Description |
|---|---|
int |
getDirection()
Gets the direction in which this context expects sequences to be rendered
- HORIZONTAL or VERTICAL.
|
FeatureHolder |
getFeatures()
The features to render.
|
Font |
getFont()
Gets the Font attribute of the SequenceRenderContext object
|
SequenceRenderContext.Border |
getLeadingBorder()
Gets the LeadingBorder attribute of the SequenceRenderContext object.
|
RangeLocation |
getRange()
The range of the SymbolList to render.
|
double |
getScale()
Gets the scale as pixels per Symbol
|
SymbolList |
getSymbols()
The SymbolList that is currently rendered by this SequenceRenderContext.
|
SequenceRenderContext.Border |
getTrailingBorder()
Gets the TrailingBorder attribute of the SequenceRenderContext object.
|
int |
graphicsToSequence(double d)
Converts a graphical position into a sequence coordinate.
|
int |
graphicsToSequence(Point2D point)
Converts a graphical position into a sequence coordinate.
|
double |
sequenceToGraphics(int i)
Converts a sequence index into a graphical coordinate.
|
public HeadlessRenderContext(Sequence seq, RangeLocation range, int width)
public int getDirection()
SequenceRenderContextgetDirection in interface SequenceRenderContextpublic FeatureHolder getFeatures()
SequenceRenderContextgetFeatures in interface SequenceRenderContextpublic Font getFont()
SequenceRenderContextgetFont in interface SequenceRenderContextpublic SequenceRenderContext.Border getLeadingBorder()
SequenceRenderContextgetLeadingBorder in interface SequenceRenderContextpublic RangeLocation getRange()
SequenceRenderContextgetRange in interface SequenceRenderContextpublic double getScale()
SequenceRenderContextgetScale in interface SequenceRenderContextpublic SymbolList getSymbols()
SequenceRenderContextgetSymbols in interface SequenceRenderContextpublic SequenceRenderContext.Border getTrailingBorder()
SequenceRenderContextgetTrailingBorder in interface SequenceRenderContextpublic double sequenceToGraphics(int i)
SequenceRenderContextsequenceToGraphics in interface SequenceRenderContexti - Index within the sequencepublic int graphicsToSequence(Point2D point)
SequenceRenderContextgraphicsToSequence in interface SequenceRenderContextpoint - a point representing the positionpublic int graphicsToSequence(double d)
SequenceRenderContextgraphicsToSequence in interface SequenceRenderContextd - A pixel positionCopyright © 2020 BioJava. All rights reserved.