- Aurigma Graphics Mill 5.5 for .NET
- Introduction
- What's New?
- Overview of Features
- Getting Started
- Programming with Graphics Mill for .NET
- File Formats
- Graphics Mill for .NET Add-ons
- Class Library Reference
- Aurigma.GraphicsMill Namespace
- Aurigma.GraphicsMill.AjaxControls Namespace
- Aurigma.GraphicsMill.AjaxControls.VectorObjects Namespace
- Aurigma.GraphicsMill.AjaxControls.VectorObjects.Math Namespace
- Aurigma.GraphicsMill.AjaxControls.VectorObjects.RedoUndo Namespace
- Aurigma.GraphicsMill.Codecs Namespace
- AdobeResourceBlock Class
- AdobeResourceDictionary Class
- AdvancedPsdFrame Class
- AdvancedPsdReader Class
- AdvancedPsdTextFrame Class
- AsfIndexer Class
- AviAlphaTransition Class
- AviAudioManager Class
- AviCompressor Class
- AviCustomTransition Class
- AviDrawTransitionEventArgs Class
- AviDrawTransitionEventHandler Delegate
- AviDrawWatermarkEventArgs Class
- AviDrawWatermarkEventHandler Delegate
- AviEncoderOptions Class
- AviFrame Class
- AviReader Class
- AviStripesTransition Class
- AviStripesTransitionMode Enumeration
- AviTimerStyle Enumeration
- AviTransition Class
- AviWatermark Class
- AviWriter Class
- BmpEncoderOptions Class
- BmpFrame Class
- BmpReader Class
- BmpWriter Class
- CompressionType Enumeration
- CustomEncoderOptions Class
- CustomFormatReader Class
- CustomFormatReader.LoadingMode Enumeration
- CustomFormatWriter Class
- CustomFrame Class
- DisposalMethod Enumeration
- DSEncoderOptions Class
- DSFrame Class
- DSPreLoadedFrame Class
- DSReader Class
- EncoderOptions Class
- ExifDictionary Class
- ExifItemInfo Structure
- FormatManager Class
- FormatReader Class
- FormatWriter Class
- Frame Class
- GifEncoderOptions Class
- GifFrame Class
- GifReader Class
- GifWriter Class
- ID3LyricsContentType Enumeration
- ID3LyricsTimestampFormat Enumeration
- ID3SynchronisedLyrics Class
- IEncoderOptions Interface
- IFormatInfo Interface
- IFormatReader Interface
- IFormatWriter Interface
- IFrame Interface
- IFrameEnumerator Interface
- IMediaProcessorMetadataReadSupport Interface
- IMetadataReadSupport Interface
- IMetadataWriteSupport Interface
- IptcDictionary Class
- ITimeReader Interface
- ITimeWriter Interface
- IXmpDictionary Interface
- Jpeg2kEncoderOptions Class
- Jpeg2kFrame Class
- Jpeg2kProgressionOrder Enumeration
- Jpeg2kReader Class
- Jpeg2kWriter Class
- JpegAlignToSampleSizeMode Enumeration
- JpegEncoderOptions Class
- JpegFrame Class
- JpegMarkerException Class
- JpegReader Class
- JpegWriter Class
- LosslessJpegTransform Class
- MediaCorruptedException Class
- MediaFormatManager Class
- MediaProcessorMetadataDictionary Class
- MediaProviderException Class
- MediaUnsupportedException Class
- MetadataDictionary Class
- MetadataEnumerator Class
- MultiFrameException Class
- PcxEncoderOptions Class
- PcxFrame Class
- PcxReader Class
- PdfEncoderOptions Class
- PdfFrame Class
- PdfWriter Class
- PngEncoderOptions Class
- PngFrame Class
- PngReader Class
- PngWriter Class
- PreLoadedFrame Class
- PsdEncoderOptions Class
- PsdFrame Class
- PsdFrameType Enumeration
- PsdReader Class
- PsdTextJustification Enumeration
- QTEncoderOptions Class
- QTFrame Class
- QTReader Class
- SwfEncoderOptions Class
- SwfFrame Class
- SwfWriter Class
- TiffChannelType Enumeration
- TiffEncoderOptions Class
- TiffExtraChannel Class
- TiffExtraChannelCollection Class
- TiffFrame Class
- TiffReader Class
- TiffWriter Class
- WbmpEncoderOptions Class
- WbmpFrame Class
- WbmpReader Class
- WbmpWriter Class
- WMEncoderOptions Class
- WMFrame Class
- WMPreLoadedFrame Class
- WMReader Class
- XmpArrayNode Class
- XmpData Class
- XmpDictionaryNode Class
- XmpLocalizedTextItemNode Class
- XmpLocalizedTextNode Class
- XmpNamespace Class
- XmpNode Class
- XmpNodeType Enumeration
- XmpStructNode Class
- XmpTagNames Class
- XmpValueNode Class
- Aurigma.GraphicsMill.Drawing Namespace
- Aurigma.GraphicsMill.Licensing Namespace
- Aurigma.GraphicsMill.Transforms Namespace
- Aurigma.GraphicsMill.WebControls Namespace
- Aurigma.GraphicsMill.WinControls Namespace
- GraphicsMill Namespace (Client Class Library)
- Aurigma.GraphicsMill.AjaxControls Namespace (Client Class Library)
- Aurigma.GraphicsMill.AjaxControls.VectorObjects Namespace (Client Class Library)
- Aurigma.GraphicsMill.AjaxControls.VectorObjects.Math Namespace (Client Class Library)
- Aurigma.GraphicsMill.AjaxControls.VectorObjects.RedoUndo Namespace (Client Class Library)
- Samples
- Licensing
- Copyright Notices
AdvancedPsdReader Class
This class is used to read PSD files layer by layer.
Namespace:
Aurigma.GraphicsMill.Codecs
Assembly:
Aurigma.GraphicsMill.Codecs.AdvancedPsd (in Aurigma.GraphicsMill.Codecs.AdvancedPsd.dll)
Syntax
Public NotInheritable Class AdvancedPsdReader _
Inherits FormatReader _
Implements IMetadataReadSupport
public sealed class AdvancedPsdReader : FormatReader, IMetadataReadSupport
Remarks
PSD file format is popular for creating graphics design templates for web sites as well as for printing production. The great feature of PSD format is that it allows to keep image separated by so-called layers. It enables designers to easily modify only one piece of image without having to change the entire image. Also, the layer can be easily hidden/shown with a single click.
Advanced PSD add-on supports two kinds of layers: raster and text ones. Raster layers contain an image (bitmap). Text layers contain a text string as well as font and paragraph settings as well as a number of other information which helps to render the text string. Also, text layers always contain rasterized text string (i.e. they can be interpreted as a particular case of raster layers). In fact PSD files can store other kinds of layers (such as vector masks, adjustment layers, etc), however Advanced PSD add-on does not support them and they are treated as unknown.
This way PSD files are convenient to use as templates for personalized graphics. The idea is very simple: the designer creates a template and when it is necessary to print or generate the personalized image, the software replaces some layers which contain the personal information by the custom data. For example, if you are building an application which prepares business cards, you can let users to change the company logo, first and last name of the person, their position, phone number, etc.
AdvancedPsdReader has the same structure as any other reader object in Graphics Mill. To get layers (in terms of Graphics Mill, frames) you should use the foreach statement or the LoadFrame(Int32) method. This way you will get instances of the AdvancedPsdFrame object. To extract the bitmap from that object, use the GetBitmap(Bitmap) method.
If the layer is text, you can extract the text information from it. To do it, you need to make sure that the frame has a text type, check out the value of the Type property. If it equals to Text, you can cast this frame to AdvancedPsdTextFrame which exposes all necessary text settings.
When you use Advanced PSD add-on you should remember that it supports only limited subset of PSD files. A lot of PSD features are not supported. That's why you should not expect that you can process arbitrary PSD file 100% correctly. You need to prepare PSD templates keeping in mind limitations of the Advanced PSD add-on.
Another caveat concerns the text rendering. If you render the text string yourself using the Graphics Mill drawing means, you may find out that the result is slightly different than in Photoshop. The problem is that Graphics Mill uses standard Microsoft font rasterizer. At the same time, Adobe has their own font rasterizer which is used in all their products. Therefore you will never get per-pixel accuracy. In particular, the width of the string rendered by Photoshop and Graphics Mill may vary on few pixels. Nonetheless in most tasks it does not make problems.
Inheritance Hierarchy
Thread Safety
Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.Object Model








