ij.plugin
Class PGM_Reader
java.lang.Object
ij.ImagePlus
ij.plugin.PGM_Reader
- All Implemented Interfaces:
- Measurements, PlugIn, java.awt.image.ImageObserver
public class PGM_Reader
- extends ImagePlus
- implements PlugIn
This plugin opens PxM format images.
The portable graymap format is a lowest common denominator
grayscale file format. The definition is as follows:
- A "magic number" for identifying the file type. A pgm
file's magic number is the two characters "P2".
- Whitespace (blanks, TABs, CRs, LFs).
- A width, formatted as ASCII characters in decimal.
- Whitespace.
- A height, again in ASCII decimal.
- Whitespace.
- The maximum gray value, again in ASCII decimal.
- Whitespace.
- Width * height gray values, each in ASCII decimal, between
0 and the specified maximum value, separated by whi-
tespace, starting at the top-left corner of the graymap,
proceeding in normal English reading order. A value of 0
means black, and the maximum value means white.
- Characters from a "#" to the next end-of-line are ignored (comments).
- No line should be longer than 70 characters.
Here is an example of a small graymap in this format:
P2
# feep.pgm
24 7
15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 15 0
0 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 0 0
0 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
There is a PGM variant that stores the pixel data as raw bytes:
-The "magic number" is "P5" instead of "P2".
-The gray values are stored as plain bytes, instead of ASCII decimal.
-No whitespace is allowed in the grays section, and only a single
character of whitespace (typically a newline) is allowed after the maxval.
-The files are smaller and many times faster to read and write.
Kai Barthel Nov 16 2004:
Extended to support PPM (portable pixmap) format images (24 bits only).
-The "magic numbers" are "P6" (raw) "P3" (ASCII).
Ulf Dittmer April 2005:
Extended to support PBM (bitmap) images (P1 and P4)
Jarek Sacha (jarek.at.ieee.org) December 2005:
Extended PPM support to 48 bit color images.
Fields inherited from class ij.ImagePlus |
changes, CLOSED, COLOR_256, COLOR_RGB, compositeImage, currentSlice, GRAY16, GRAY32, GRAY8, img, ip, locked, OPENED, roi, UPDATED, win |
Fields inherited from interface java.awt.image.ImageObserver |
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Fields inherited from interface ij.measure.Measurements |
AREA, AREA_FRACTION, CENTER_OF_MASS, CENTROID, CIRCULARITY, ELLIPSE, FERET, INTEGRATED_DENSITY, INVERT_Y, KURTOSIS, LABELS, LIMIT, MAX_STANDARDS, MEAN, MEDIAN, MIN_MAX, MODE, PERIMETER, RECT, SCIENTIFIC_NOTATION, SHAPE_DESCRIPTORS, SKEWNESS, SLICE, STACK_POSITION, STD_DEV |
Methods inherited from class ij.ImagePlus |
addImageListener, clone, close, copy, copyScale, createEmptyStack, createHyperStack, createImagePlus, createLut, createNewRoi, draw, draw, flatten, flush, getBitDepth, getBufferedImage, getBytesPerPixel, getCalibration, getCanvas, getChannel, getChannelProcessor, getClipboard, getCurrentSlice, getDimensions, getDisplayRangeMax, getDisplayRangeMin, getFileInfo, getFrame, getGlobalCalibration, getHeight, getID, getImage, getImageStack, getImageStackSize, getLocalCalibration, getLocationAsString, getLuts, getMask, getNChannels, getNDimensions, getNFrames, getNSlices, getOpenAsHyperStack, getOriginalFileInfo, getOverlay, getPixel, getProcessor, getProperties, getProperty, getRoi, getShortTitle, getSlice, getStack, getStackIndex, getStackSize, getStartTime, getStatistics, getStatistics, getStatistics, getStatistics, getTitle, getType, getWidth, getWindow, hide, imageUpdate, isComposite, isDisplayedHyperStack, isHyperStack, isInvertedLut, isLocked, isProcessor, isVisible, killRoi, killStack, lock, lockSilently, mouseMoved, notifyListeners, paste, removeImageListener, repaintWindow, resetClipboard, resetDisplayRange, resetStack, restoreRoi, revert, saveRoi, setActivated, setCalibration, setColor, setDimensions, setDisplayRange, setDisplayRange, setFileInfo, setGlobalCalibration, setIgnoreFlush, setImage, setOpenAsHyperStack, setOverlay, setOverlay, setOverlay, setPosition, setPosition, setPositionWithoutUpdate, setProcessor, setProcessor, setProperty, setRoi, setRoi, setRoi, setRoi, setSlice, setSliceWithoutUpdate, setStack, setStack, setStack, setTitle, setType, setWindow, show, show, startTiming, toString, trimProcessor, unlock, updateAndDraw, updateAndRepaintWindow, updateChannelAndDraw, updateImage, updatePosition, updateStatusbarValue |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
PGM_Reader
public PGM_Reader()
run
public void run(java.lang.String arg)
- Description copied from interface:
PlugIn
- This method is called when the plugin is loaded.
'arg', which may be blank, is the argument specified
for this plugin in IJ_Props.txt.
- Specified by:
run
in interface PlugIn
openFile
public ImageStack openFile(java.lang.String path)
throws java.io.IOException
- Throws:
java.io.IOException
openHeader
public void openHeader(java.io.StreamTokenizer tok)
throws java.io.IOException
- Throws:
java.io.IOException
openAsciiImage
public void openAsciiImage(java.io.StreamTokenizer tok,
int size,
byte[] pixels)
throws java.io.IOException
- Throws:
java.io.IOException
openRawImage
public void openRawImage(java.io.InputStream is,
int size,
byte[] pixels)
throws java.io.IOException
- Throws:
java.io.IOException
open16bitRawImage
public ImageProcessor open16bitRawImage(java.io.InputStream is,
int width,
int height)
throws java.io.IOException
- Throws:
java.io.IOException
open16bitAsciiImage
public ImageProcessor open16bitAsciiImage(java.io.StreamTokenizer tok,
int width,
int height)
throws java.io.IOException
- Throws:
java.io.IOException