@nodegui/nodegui
Version:
A cross-platform library to build native desktop apps.
264 lines (258 loc) • 10.8 kB
TypeScript
/// <reference types="node" />
import { Component, NativeElement } from '../core/Component';
import { ImageConversionFlag, GlobalColor, AspectRatioMode, TransformationMode } from '../QtEnums';
import { QSize } from '../QtCore/QSize';
import { QRect } from '../QtCore/QRect';
import { QPoint } from '../QtCore/QPoint';
import { QVariant } from '../QtCore/QVariant';
import { QColor } from '../QtGui/QColor';
/**
> The QImage class provides a hardware-independent image representation that
allows direct access to the pixel data, and can be used as a paint device.
* **This class is a JS wrapper around Qt's [QImage class](https://doc.qt.io/qt-5/qimage.html)**
### Example
```javascript
const { QImage } = require('@nodegui/nodegui');
const image = new QImage();
```
*/
export declare class QImage extends Component {
/** Constructs a null image */
constructor();
constructor(native: NativeElement);
/** Constructs an image and tries to load the image from the file with the given fileName */
constructor(filename: string);
/** Constructs an image with the given width, height and format */
constructor(width: number, height: number, format: QImageFormat);
/** Constructs an image with the given size and format */
constructor(size: QSize, format: QImageFormat);
/**
* Returns true if all the colors in the image are shades of gray (i.e. their
* red, green and blue components are equal); otherwise false
*/
allGray(): boolean;
/** Returns the number of bit planes in the image */
bitPlaneCount(): number;
/** Returns the number of bytes per image scanline */
bytesPerLine(): number;
/**
* Returns a number that identifies the contents of this QImage object. Distinct
* QImage objects can only have the same key if they refer to the same contents
*/
cacheKey(): number;
/**
* Returns the color in the color table at index i. The first color is at index 0
*/
color(i: number): number;
/** Returns the size of the color table for the image */
colorCount(): number;
/** Detach and convert the image to the given format in place */
convertTo(format: QImageFormat, flags?: ImageConversionFlag): void;
/** Returns a copy of the image in the given format */
convertToFormat(format: QImageFormat, flags?: ImageConversionFlag): QImage;
/** Returns a sub-area of the image as a new image */
copy(rectangle: QRect): QImage;
/** This is an overloaded function */
copy(x: number, y: number, width: number, height: number): QImage;
/**
* Builds and returns a 1-bpp mask from the alpha buffer in this image. Returns
* a null image if the image's format is QImageFormat::Format_RGB32
*/
createAlphaMask(flags?: ImageConversionFlag): QImage;
/** Creates and returns a 1-bpp heuristic mask for this image */
createHeuristicMask(clipTight?: boolean): QImage;
/** Returns the depth of the image */
depth(): number;
/**
* Returns the device pixel ratio for the image. This is the ratio
* between device pixels and device independent pixels.
*/
devicePixelRatio(): number;
/**
* Returns the number of pixels that fit horizontally in a physical meter. Together
* with dotsPerMeterY(), this number defines the intended scale and aspect ratio of
* the image
*/
dotsPerMeterX(): number;
/**
* Returns the number of pixels that fit vertically in a physical meter. Together with
* dotsPerMeterX(), this number defines the intended scale and aspect ratio of the image
*/
dotsPerMeterY(): number;
/** Fills the entire image with the given color */
fill(color: QColor | GlobalColor): void;
/** Returns the format of the image */
format(): QImageFormat;
/**
* Returns true if the image has a format that respects the alpha channel, otherwise
* returns false
*/
hasAlphaChannel(): boolean;
/** Returns the height of the image */
height(): number;
/** Inverts all pixel values in the image */
invertPixels(mode?: QImageInvertMode): void;
/** For 32-bit images, this function is equivalent to allGray() */
isGrayscale(): boolean;
/** Returns true if it is a null image, otherwise returns false */
isNull(): boolean;
/**
* Loads an image from the file with the given fileName. Returns true if the image was
* successfully loaded; otherwise invalidates the image and returns false
*/
load(fileName: string, format?: string | null): boolean;
/** Loads an image from the specified buffer */
loadFromData(data: Buffer, format?: string | null): boolean;
/**
* Returns a mirror of the image, mirrored in the horizontal and/or the vertical direction
* depending on whether horizontal and vertical are set to true or false
*/
mirrored(horizontal?: boolean, vertical?: boolean): QImage;
/**
* Returns the number of pixels by which the image is intended to be offset by when
* positioning relative to other images
*/
offset(): QPoint;
/** Returns the color of the pixel at the given position as a QColor */
pixelColor(point: QPoint): QColor;
/** Returns the color of the pixel at coordinates (x, y) as a QColor */
pixelColor(x: number, y: number): QColor;
/** Returns the pixel index at the given position */
pixelIndex(point: QPoint): number;
/** Returns the pixel index at (x, y) */
pixelIndex(x: number, y: number): number;
/** Returns the enclosing rectangle (0, 0, width(), height()) of the image */
rect(): QRect;
/**
* Changes the format of the image to format without changing the data. Only works
* between formats of the same depth. Returns true if successful
*/
reinterpretAsFormat(format: QImageFormat): boolean;
/**
* Saves the image to the file with the given fileName, using the given image file
* format and quality factor. If format is null, QImage will attempt to guess the
* format by looking at fileName's suffix.
*/
save(fileName: string, format?: string | null, quality?: number): boolean;
/**
* Returns a copy of the image scaled to a rectangle defined by the given size according
* to the given aspectRatioMode and transformMode.
*/
scaled(size: QSize, aspectRatioMode: AspectRatioMode, transformMode: TransformationMode): QImage;
/**
* Returns a copy of the image scaled to a rectangle with the given width and height
* according to the given aspectRatioMode and transformMode.
*/
scaled(width: number, height: number, aspectRatioMode: AspectRatioMode, transformMode: TransformationMode): QImage;
/**
* Returns a scaled copy of the image. The returned image is scaled to the given height
* using the specified transformation mode
*/
scaledToHeight(height: number, mode?: TransformationMode): QImage;
/**
* Returns a scaled copy of the image. The returned image is scaled to the given width
* using the specified transformation mode
*/
scaledToWidth(width: number, mode?: TransformationMode): QImage;
/**
* Sets the alpha channel of this image to the given alphaChannel
*/
setAlphaChannel(alphaChannel: QImage): void;
/**
* Sets the color at the given index in the color table, to the given to colorValue.
* The color value is an ARGB quadruplet
*/
setColor(index: number, colorValue: number): void;
/**
* Resizes the color table to contain colorCount entries
*/
setColorCount(colorCount: number): void;
/**
* Sets the device pixel ratio for the image. This is the ratio between image pixels
* and device-independent pixels
*/
setDevicePixelRatio(ratio: number): void;
/**
* Sets the number of pixels that fit horizontally in a physical meter, to x
*/
setDotsPerMeterX(x: number): void;
/**
* Sets the number of pixels that fit vertically in a physical meter, to y
*/
setDotsPerMeterY(y: number): void;
/**
* Sets the number of pixels by which the image is intended to be offset by
* when positioning relative to other images, to offset
*/
setOffset(offset: QPoint): void;
/** Sets the pixel index or color at the given position to indexOrRgb */
setPixel(position: QPoint, indexOrRgb: number): void;
/** Sets the pixel index or color at (x, y) to indexOrRgb */
setPixel(x: number, y: number, indexOrRgb: number): void;
/** Sets the color at the given position to color */
setPixelColor(position: QPoint, color: QColor): void;
/** Sets the pixel color at (x, y) to color */
setPixelColor(x: number, y: number, color: QColor): void;
/** Sets the image text to the given text and associate it with the given key */
setText(key: string, value: string): void;
/** Returns the size of the image, i.e. its width() and height() */
size(): QSize;
/** Returns the image data size in bytes */
sizeInBytes(): number;
/** Swaps image other with this image. This operation is very fast and never fails */
swap(other: QImage): void;
/**
* Returns the image text associated with the given key. If the specified key is an empty
* string, the whole image text is returned, with each key-text pair separated by a newline
*/
text(key: string): string;
/** Returns the text keys for this image */
textKeys(): string[];
/** Returns true if pos is a valid coordinate pair within the image; otherwise returns false */
valid(pos: QPoint): boolean;
/**
* Returns true if QPoint(x, y) is a valid coordinate pair within the image; otherwise returns
* false
*/
valid(x: number, y: number): boolean;
/** Returns the width of the image */
width(): number;
static fromQVariant(variant: QVariant): QImage;
static fromBuffer(buffer: Buffer, width: number, height: number, format: QImageFormat): QImage;
}
export declare enum QImageFormat {
Invalid = 0,
Mono = 1,
MonoLSB = 2,
Indexed8 = 3,
RGB32 = 4,
ARGB32 = 5,
ARGB32_Premultiplied = 6,
RGB16 = 7,
ARGB8565_Premultiplied = 8,
RGB666 = 9,
ARGB6666_Premultiplied = 10,
RGB555 = 11,
ARGB8555_Premultiplied = 12,
RGB888 = 13,
RGB444 = 14,
ARGB4444_Premultiplied = 15,
RGBX8888 = 16,
RGBA8888 = 17,
RGBA8888_Premultiplied = 18,
BGR30 = 19,
A2BGR30_Premultiplied = 20,
RGB30 = 21,
A2RGB30_Premultiplied = 22,
Alpha8 = 23,
Grayscale8 = 24,
Grayscale16 = 25,
RGBX64 = 26,
RGBA64 = 27,
RGBA64_Premultiplied = 28,
BGR888 = 29
}
export declare enum QImageInvertMode {
InvertRgb = 0,
InvertRgba = 1
}