Pixmap¶
A Pixmap object contains a color raster image (short for pixel map). The components in a pixel in the Pixmap are all byte values, with the transparency as the last component.
A Pixmap also has a location (x, y) in addition to its size; so that they can easily be used to represent tiles of a page.
Constructors¶
- class Pixmap(colorspace, bbox, alpha)¶
- class Pixmap(pixmap, mask)
Create a new empty Pixmap whose pixel data is not initialized. Alternatively create a new Pixmap based on an existing Pixmap without alpha and combine it with a single component soft mask of the same dimensions.
- Arguments:
colorspace (
ColorSpace | null) – The desired colorspace for the new pixmap.nullimplies a single component alpha pixmap.bbox (
Rect) – The desired dimensions of the new pixmap.alpha (
boolean) – Whether the new pixmap should have an alpha component.pixmap (
Pixmap) – The original pixmap without alpha.mask (
Pixmap) – Soft mask used as alpha in the combined pixmap.
var pixmap1 = new mupdf.Pixmap(mupdf.ColorSpace.DeviceRGB, [0, 0, 100, 100], true) var pixmap2 = new mupdf.Pixmap( new mupdf.Image("photo.png").toPixmap(), new mupdf.Image("softmask.png").toPixmap() )
Instance methods¶
- Pixmap.prototype.clear(value)¶
Clear the pixels to the specified value. Pass 255 for white, 0 for black, or omit for transparent.
- Arguments:
value (
number) – The value to use for clearing.
pixmap.clear(255)
- Pixmap.prototype.getWidth()¶
Get the width of the pixmap.
- Returns:
number
var w = pixmap.getWidth()
- Pixmap.prototype.getHeight()¶
Get the height of the pixmap.
- Returns:
number
var h = pixmap.getHeight()
- Pixmap.prototype.getNumberOfComponents()¶
Number of colors; plus one if an alpha channel is present.
- Returns:
number
var num = pixmap.getNumberOfComponents()
- Pixmap.prototype.getAlpha()¶
Returns whether an alpha channel is present.
- Returns:
boolean
var alpha = pixmap.getAlpha()
- Pixmap.prototype.getStride()¶
Number of bytes per row.
- Returns:
number
var stride = pixmap.getStride()
- Pixmap.prototype.getColorSpace()¶
Returns the colorspace of this pixmap. Returns null if the pixmap has no colors (for example if it is an opacity mask with only an alpha channel).
- Returns:
ColorSpace | null
var cs = pixmap.getColorSpace()
- Pixmap.prototype.setResolution(x, y)¶
Set horizontal and vertical resolution.
- Arguments:
x (
number) – Horizontal resolution in dots per inch.y (
number) – Vertical resolution in dots per inch.
pixmap.setResolution(300, 300)
- Pixmap.prototype.getX()¶
Returns the x coordinate of the pixmap.
var x = pixmap.getX()
- Pixmap.prototype.getY()¶
Returns the y coordinate of the pixmap.
- Returns:
number
var y = pixmap.getY()
- Pixmap.prototype.getXResolution()¶
Returns the horizontal resolution in dots per inch for this pixmap.
- Returns:
number
var xRes = pixmap.getXResolution()
- Pixmap.prototype.getYResolution()¶
Returns the vertical resolution in dots per inch for this pixmap.
- Returns:
number
var yRes = pixmap.getYResolution()
- Pixmap.prototype.invert()¶
Invert all pixels. All components are processed, except alpha which is unchanged.
pixmap.invert()
- Pixmap.prototype.invertLuminance()¶
Transform all pixels so that luminance of each pixel is inverted, and the chrominance remains as unchanged as possible. All components are processed, except alpha which is unchanged.
pixmap.invertLuminance()
- Pixmap.prototype.gamma(p)¶
Apply gamma correction to this pixmap. All components are processed, except alpha which is unchanged.
Values
>= 0.1 & < 1darkens the pixmap,> 1 & < 10lightens the pixmap.- Arguments:
p (
number) – Desired gamma level.
pixmap.gamma(3.5)
- Pixmap.prototype.tint(black, white)¶
Tint all pixels in RGB, BGR or Gray pixmaps. Map black and white respectively to the given hex RGB values.
- Arguments:
black (
Color | number) – Map black to this color.white (
Color | number) – Map white to this color.
pixmap.tint(0xffff00, 0xffff00)
- Pixmap.prototype.warp(points, width, height)¶
Return a warped subsection of this pixmap, where the corner of the input quadrilateral will be “warped” to become the four corner points of the returned pixmap defined by the requested dimensions.
- Arguments:
- Returns:
var warpedPixmap = pixmap.warp([[0, 0], [100, 100], [130, 170], [150, 200]], 200, 200)
- Pixmap.prototype.autowarp(points)¶
only mutool run
Same as
Pixmap.prototype.warp()except that width and height are automatically determined.- Arguments:
- Returns:
var warpedPixmap = pixmap.autowarp([0,0,100,0,0,100,100,100])
- Pixmap.prototype.convertToColorSpace(colorspace, keepAlpha)¶
Convert pixmap into a new pixmap of a desired colorspace. A proofing colorspace, a set of default colorspaces and color parameters used during conversion may be specified. Finally a boolean indicates if alpha should be preserved (default is to not preserve alpha).
- Arguments:
colorspace (
ColorSpace) – The desired colorspace.keepAlpha (
boolean) – Whether to keep the alpha component.
- Returns:
- Pixmap.prototype.getPixels()¶
Returns an array of pixels for this pixmap.
- Returns:
Array of number
var pixels = pixmap.getPixels()
- Pixmap.prototype.asPNG()¶
Returns a buffer of this pixmap as a PNG.
- Returns:
var buffer = pixmap.asPNG()
- Pixmap.prototype.asPSD()¶
Returns a buffer of this pixmap as a PSD.
- Returns:
var buffer = pixmap.asPSD()
- Pixmap.prototype.asPAM()¶
Returns a buffer of this pixmap as a PAM.
- Returns:
var buffer = pixmap.asPAM()
- Pixmap.prototype.asJPEG(quality, invert_cmyk)¶
Returns a buffer of this pixmap as a JPEG. Note, if this pixmap has an alpha channel then an exception will be thrown.
- Arguments:
quality (
number) – Desired compression quality, between0and100.invert_cmyk (
boolean) – How to handle polarity in CMYK JPEG images.
- Returns:
var buffer = pixmap.asJPEG(80, false)
- Pixmap.prototype.decodeBarcode(rotate)¶
only mutool run
Decodes a barcode detected in the pixmap, and returns an object with properties for barcode type and contents.
- Arguments:
rotate (
number) – Degrees of rotation to rotate pixmap before detecting barcode. Defaults to 0.
- Returns:
Object with barcode information.
var barcodeInfo = displayList.decodeBarcode([0, 0, 100, 100 ], 0)
- Pixmap.prototype.encodeBarcode(barcodeType, contents, size, errorCorrectionLevel, quietZones, humanReadableText)¶
only mutool run
Encodes a barcode into a pixmap. The supported types of barcode is either one of:
Matrix
Linear Product
Linear Industrial
String
Name
String
Name
String
Name
qrcodeQR Code
upcaUPC-A
code39Code 39
microqrcodeMicro QR Code
upceUPC-E
code93Code 93
rmqrcoderMQR Code
ean8EAN-8
code128Code 128
aztecAztec
ean13EAN-13
codabarCodabar
datamatrixDataMatrix
databarDataBar
databarexpandedDataBar Expanded
pdf417PDF417
databarlimitedDataBar Limited
dxfilmedgeDX Film Edge
maxicodeMaxiCode
itfITF
- Arguments:
barcodeType (
string) – The desired barcode type.contents (
string) – The textual content to encode into the barcode.size (
number) – The size of the barcode in pixels.errorCorrectionLevel (
number) – The error correction level (0-8).quietZones (
boolean) – Whether to add an empty margin around the barcode.humanReadableText (
boolean) – Whether to add human-readable text. Some barcodes, e.g. EAN-13, can have the barcode contents printed in human-readable text next to the barcode.
- Returns:
var pix = Pixmap.encodeBarcode("qrcode", "Hello world!", 100, 2, true, false)
- Pixmap.prototype.getSample(x, y, index)¶
only mutool run
Get the value of component
indexat position x, y (relative to the image origin: 0, 0 is the top left pixel).- Arguments:
x (
number) – X coordinate.y (
number) – Y coordinate.index (
number) – Component index. i.e. For CMYK ColorSpaces 0 = Cyan, 3 = Black, for RGB 0 = Red, 2 == Blue etc.
- Throws:
RangeError if x, y, or index are out of range.
- Returns:
number
// Get green component of pixel at 10, 10 var sample = rgbpixmap.getSample(10, 10, 1)
- Pixmap.prototype.saveAsPNG(filename)¶
only mutool run
Save this Pixmap as a PNG. Only works for gray and RGB images.
- Arguments:
filename (
string) – Desired name of image file.
pixmap.saveAsPNG("filename.png")
- Pixmap.prototype.saveAsJPEG(filename, quality)¶
only mutool run
Save this Pixmap as a JPEG file. Only works for gray, RGB and CMYK images.
- Arguments:
filename (
string) – Desired name of image file.quality (
number) – Desired quality between 0 and 100. Defaults to 90.
pixmap.saveAsJPEG("filename.jpg", 80)
- Pixmap.prototype.saveAsPAM(filename)¶
only mutool run
Save this Pixmap as a PAM file.
- Arguments:
filename (
string) – Desired name of image file.
pixmap.saveAsPAM("filename.pam")
- Pixmap.prototype.saveAsPNM(filename)¶
only mutool run
Save this Pixmap as a PNM file. Only works for gray and RGB images without alpha.
- Arguments:
filename (
string) – Desired name of image file.
pixmap.saveAsPNM("filename.pnm")
- Pixmap.prototype.saveAsPBM(filename)¶
only mutool run
Save this Pixmap as a PBM file. Only works for alpha only, gray and CMYK images without alpha.
- Arguments:
filename (
string) – Desired name of image file.
pixmap.saveAsPBM("filename.pbm")
- Pixmap.prototype.saveAsPKM(filename)¶
only mutool run
Save this Pixmap as a PKM file. Only works for alpha only, gray and CMYK images without alpha.
- Arguments:
filename (
string) – Desired name of image file.
pixmap.saveAsPKM("filename.pkm")
- Pixmap.prototype.saveAsJPX(filename, quality)¶
only mutool run
Save this Pixmap as a JPX file.
- Arguments:
filename (
string) – Desired name of image file.quality (
number) – Desired quality between 0 and 100. Defaults to 90.
pixmap.saveAsJPX("filename.jpx", 90)
- Pixmap.prototype.detectDocument(points)¶
only mutool run
Detect a “document” in a Pixmap. Only a grayscale Pixmap without alpha is supported, anything else will cause an exception to be thrown.
Returns null if no document was detected.
- Returns:
Quad | null
var documentLocation = pixmap.detectDocument([0,0,100,0,100,100,0,100])
- Pixmap.prototype.detectSkew()¶
only mutool run
Returns the angle of skew detected from Pixmap. Note, if the Pixmap is not Greyscale with no alpha then an exception will be thrown.
- Returns:
number
var angle = pixmap.detectSkew()
- Pixmap.prototype.deskew(angle, border)¶
only mutool run
Returns a new Pixmap being the deskewed version of the supplied Pixmap. Note, if a Pixmap is supplied that is not RGB or Greyscale, or has alpha then an exception will be thrown.
- Arguments:
angle (
number) – The angle to deskew.border (
string) – “increase” increases the size of the pixmap so no pixels are lost. “maintain” maintains the size of the pixmap. “decrease” decreases the size of the page so no new pixels are shown.
- Returns:
var deskewed = pixmap.deskew(angle, 0)
- Pixmap.prototype.computeMD5()¶
only mutool run
Returns the MD5 digest of the pixmap pixel data. The digest is returned as a string of 16 hex digits.
- Returns:
string
var md5 = pixmap.computeMD5()