[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | Reference for unit 'Graphics' (#lcl)

# TPicture

[Properties (by Name)] [Methods (by Name)] [Events (by Name)]

Implements a container for TGraphic and descendent classes.

## Declaration

Source position: graphics.pp line 869

`type TPicture = class(TPersistent)`
`protected`
`procedure AssignTo(); override;` |  | AssignTo if Dest is the correct (Graphic) class type, calls Assign for Dest, otherwise calls inherited AssignTo.
`procedure Changed(); virtual;` |  | Performs actions needed when value(s) in the class instance have been modified.
`procedure DefineProperties(); override;` |  | Defines properties handled during LCL component streaming.
`procedure Progress(); virtual;` |  | Monitors progress of a drawing process.
`procedure LoadFromStreamWithClass();` |  | Loads values for the Graphic property from a stream using the specified class type.
`public`
`constructor Create;` |  | Create - constructor for TPicture: performs inherited Create then loads file and clipboard formats.
`destructor Destroy; override;` |  | Destroy - destructor for TPicture: frees graphic then performs inherited Destroy.
`procedure Clear; virtual;` |  | Clear - removes the Graphic in the class instance.
`procedure LoadFromClipboardFormat();` |  | LoadFromClipboardFormat - Reads the picture from the handle provided in the given clipboard format.
`procedure LoadFromClipboardFormatID();` |  | Reads the picture from a clipboard of type ClipboardType using the format FormatID.
`procedure LoadFromFile();` |  | LoadFromFile - Reads a picture from disk.
`procedure LoadFromResourceName();` |  | Loads content from the specified resource into the Graphic property.
`procedure LoadFromLazarusResource();` |  | Gets the named resource from a Lazarus Resource (.lrs) file.
`procedure LoadFromStream();` |  | Loads picture data in a supported image format from the specified stream.
`procedure LoadFromStreamWithFileExt();` |  | Loads the picture from a stream containing data for the specified file extension.
`procedure SaveToClipboardFormat();` |  | SaveToClipboardFormats - Allocates a global handle and writes the picture in its native clipboard format.
`procedure SaveToFile();` |  | SaveToFile - Writes the picture to disk.
`procedure SaveToStream();` |  | Saves the graphic to the specified stream.
`procedure SaveToStreamWithFileExt();` |  | Saves graphic image data to a stream using the specified format and file extension.
`class function SupportsClipboardFormat();` |  | SupportsClipboardFormat - Returns True if the given clipboard format is supported by LoadFromClipboardFormat.
`procedure Assign(); override;` |  | Assign - if the Source is a valid graphic type, copy the relevant details to the current object, otherwise call inherited Assign.
`class procedure RegisterFileFormat();` |  | Registers a new TGraphic class for use in LoadFromFile.
`class procedure RegisterClipboardFormat();` |  | Registers a new TGraphic class for use in LoadFromClipboardFormat.
`class procedure UnregisterGraphicClass();` |  | Removes all references to the specified TGraphic.
`class function FindGraphicClassWithFileExt();` |  | Finds a graphic class with the named file extension Ext, and raises an exception if not found.
`property Bitmap: TBitmap; [rw]` |  | Bitmap - Returns a bitmap.
`property Icon: TIcon; [rw]` |  | Icon contained within the picture.
`property Jpeg: TJpegImage; [rw]` |  | Jpeg - returns a JPEG image.
`property Pixmap: TPixmap; [rw]` |  | Pixmap - Returns a pixmap.
`property PNG: TPortableNetworkGraphic; [rw]` |  | PNG - Returns a png.
`property PNM: TPortableAnyMapGraphic; [rw]` |  | PNM - a PortableAnyMapGraphic image.
`property Graphic: TGraphic; [rw]` |  | Graphic - The TGraphic object contained by the TPicture.
`property Height: Integer; [r]` |  | Height - The native, unstretched, height of the picture.
`property Width: Integer; [r]` |  | Width - The native, unstretched, width of the picture.
`property OnChange: TNotifyEvent; [rw]` |  | OnChange - Event handler for any change in the picture.
`property OnProgress: TProgressEvent; [rw]` |  | Event handler signalled to track the progress of operations in the class instance.
`end;`

## Inheritance

`TPicture` |  | Implements a container for TGraphic and descendent classes.
`TPersistent`
?
`TObject`

## Description

TPicture is a TGraphic container. It is used in place of a TGraphic if the graphic can be of any TGraphic class.

It is not a direct descendant of TGraphic, so you will not see TGraphic listed in the Inheritance chart, but it contains a property Graphic, of type TGraphic, so can contain all the properties of a TGraphic.

Defines many private methods for getting and storing various sorts of images such as bitmaps, pixmaps, icons, PNGs etc.

TPicture does not have a defined area used to display the image. This is supplied in the Canvas property in the classes which support BitMap, PixMap, PNG, JPEG, GIF, TIFF or Icon image formats.

LoadFromFile and SaveToFile are polymorphic. For example, if the TPicture is holding an Icon, you can LoadFromFile a bitmap file, whereas if the class is TIcon you could only read .ICO files.

- LoadFromFile - Reads a picture from disk. The TGraphic class created is determined by the file extension of the file. If the file extension is not recognized an exception is generated.
- SaveToFile - Writes the picture to disk.
- LoadFromClipboardFormat - Reads the picture from the handle provided in the given clipboard format. If the format is not supported, an exception is generated.
- SaveToClipboardFormats - Allocates a global handle and writes the picture in its native clipboard format (CF_BITMAP for bitmaps, CF_METAFILE for metafiles, etc.). Formats will contain the formats written. Returns the number of clipboard items written to the array pointed to by Formats and Datas or would be written if either Formats or Datas are Nil.
- SupportsClipboardFormat - Returns True if the given clipboard format is supported by LoadFromClipboardFormat.
- Assign - Copies the contents of the given TPicture. Used in the implementation of TPicture properties.
- RegisterFileFormat - Register a new TGraphic class for use in LoadFromFile.
- RegisterClipboardFormat - Registers a new TGraphic class for use in LoadFromClipboardFormat.
- UnRegisterGraphicClass - Removes all references to the specified TGraphic class and all its descendants from the file format and clipboard format internal lists.
- Height - The native, unstretched, height of the picture.
- Width - The native, unstretched, width of the picture.
- Graphic - The TGraphic object contained by the TPicture
- Bitmap - Returns a bitmap. If the contents is not already a bitmap, the contents are discarded and a blank bitmap is returned.
- Pixmap - Returns a pixmap. If the contents is not already a pixmap, the contents are discarded and a blank pixmap is returned.
- PNG - Returns a png. If the contents is not already a png, the contents are discarded and a blank png (TPortableNetworkGraphic) is returned.
- PNM - Returns a pnm. If the contents is not already a pnm, the contents are discarded and a blank pnm (TPortableAnyMapGraphic) is returned.
- Jpeg - Returns a jpeg. If the contents is not already a jpeg, the contents are discarded and a blank jpeg ( TJPegImage) is returned.