@ElementWriterMetadata(name="SVG file", elementType=FileLinkElement.class, mimeType="image/svg+xml", processedType=AbstractOverlaysAlias.class, linkExt="svg") public class AbstractOverlaysToSVGFileWriter extends Object implements ElementWriter<FileLinkElement,net.imagej.overlay.AbstractOverlay[]>
Modifier and Type | Field and Description |
---|---|
private String |
errorMessages |
private FileOutputStream |
fos |
Constructor and Description |
---|
AbstractOverlaysToSVGFileWriter() |
Modifier and Type | Method and Description |
---|---|
private void |
applyDefaultStyles(XMLStreamWriter xsw)
Default SVG styling attributes for overlays
|
private void |
closeFile(XMLStreamWriter xsw)
End the SVG file and do cleanup
|
private void |
getPlanarAxes(net.imagej.overlay.AbstractOverlay overlay,
int[] axes)
Get the X and Y axis indeces for an overlay
|
private XMLStreamWriter |
setupFile(String path,
int width,
int height,
String img)
Start the SVG file
|
void |
write(net.imagej.overlay.AbstractOverlay[] data,
FileLinkElement elementToWrite)
Convert "processed" data to "underlying" data.
|
void |
write(net.imagej.overlay.AbstractOverlay[] data,
String path) |
void |
write(net.imagej.overlay.AbstractOverlay[] data,
String path,
int width,
int height) |
void |
write(net.imagej.overlay.AbstractOverlay[] data,
String path,
int width,
int height,
String imgPath) |
private void |
writeEllipseOverlay(XMLStreamWriter xsw,
net.imagej.overlay.EllipseOverlay overlay)
Write an ellipse overlay
|
private void |
writeFile(String path,
net.imagej.overlay.AbstractOverlay[] overlays,
int width,
int height,
String img)
Write the SVG file to
path |
private void |
writeGeneralPathOverlay(XMLStreamWriter xsw,
net.imagej.overlay.GeneralPathOverlay overlay)
Write a general path overlay
|
private void |
writeLineOverlay(XMLStreamWriter xsw,
net.imagej.overlay.LineOverlay overlay)
Write a line overlay
|
private void |
writeOverlay(XMLStreamWriter xsw,
net.imagej.overlay.AbstractOverlay overlay)
Write an overlay, if supported
|
private void |
writePointOverlay(XMLStreamWriter xsw,
net.imagej.overlay.PointOverlay overlay)
Write a point overlay.
|
private void |
writePolygonOverlay(XMLStreamWriter xsw,
net.imagej.overlay.PolygonOverlay overlay)
Write a polygon overlay
|
private void |
writeRectangleOverlay(XMLStreamWriter xsw,
net.imagej.overlay.RectangleOverlay overlay)
Write a rectangle overlay
|
private FileOutputStream fos
private String errorMessages
public void write(net.imagej.overlay.AbstractOverlay[] data, FileLinkElement elementToWrite) throws SlideSetException
ElementWriter
write
in interface ElementWriter<FileLinkElement,net.imagej.overlay.AbstractOverlay[]>
data
- The "processed" data.elementToWrite
- The DataElement
to
to which the data will be written.SlideSetException
public void write(net.imagej.overlay.AbstractOverlay[] data, String path) throws SlideSetException
SlideSetException
public void write(net.imagej.overlay.AbstractOverlay[] data, String path, int width, int height) throws SlideSetException
SlideSetException
public void write(net.imagej.overlay.AbstractOverlay[] data, String path, int width, int height, String imgPath) throws SlideSetException
SlideSetException
private void writeFile(String path, net.imagej.overlay.AbstractOverlay[] overlays, int width, int height, String img) throws SlideSetException
path
SlideSetException
private XMLStreamWriter setupFile(String path, int width, int height, String img) throws SlideSetException
SlideSetException
private void closeFile(XMLStreamWriter xsw) throws SlideSetException
SlideSetException
private void writeOverlay(XMLStreamWriter xsw, net.imagej.overlay.AbstractOverlay overlay) throws SlideSetException
SlideSetException
private void writePointOverlay(XMLStreamWriter xsw, net.imagej.overlay.PointOverlay overlay) throws SlideSetException
As it turns out, SVG doesn't actually support point elements, so we'll draw a line with identical start and end points.
SlideSetException
private void writeLineOverlay(XMLStreamWriter xsw, net.imagej.overlay.LineOverlay overlay) throws SlideSetException
SlideSetException
private void writeRectangleOverlay(XMLStreamWriter xsw, net.imagej.overlay.RectangleOverlay overlay) throws SlideSetException
SlideSetException
private void writeEllipseOverlay(XMLStreamWriter xsw, net.imagej.overlay.EllipseOverlay overlay) throws SlideSetException
SlideSetException
private void writePolygonOverlay(XMLStreamWriter xsw, net.imagej.overlay.PolygonOverlay overlay) throws SlideSetException
SlideSetException
private void writeGeneralPathOverlay(XMLStreamWriter xsw, net.imagej.overlay.GeneralPathOverlay overlay) throws SlideSetException
SlideSetException
private void getPlanarAxes(net.imagej.overlay.AbstractOverlay overlay, int[] axes) throws SlideSetException
axes
- A 2-element int
array that
will be filled with the X and Y axis indeces,
in that order.SlideSetException
private void applyDefaultStyles(XMLStreamWriter xsw) throws SlideSetException
SlideSetException
Copyright © 2023. All rights reserved.