Class SmartObjectLayer

SmartObjectLayer class

Definieert de SmartObjectLayer-klasse die is ingebed in het PSD-bestand of gekoppeld slim object in het externe bestand. Met Smart Objects kunt u: Niet-destructieve transformaties uitvoeren. U kunt een laag schalen, roteren, scheeftrekken, vervormen, perspectief transformeren of kromtrekken zonder de originele afbeeldingsgegevens of kwaliteit te verliezen, omdat de transformaties geen invloed hebben op de originele gegevens. Werk met vectorgegevens, zoals vectorillustraties van Illustrator, die anders zou worden gerasterd. Voer niet-destructieve filtering uit. U kunt op elk gewenst moment filters bewerken die op slimme objecten zijn toegepast. Bewerk één slim object en werk automatisch alle gekoppelde instanties bij. Pas een laagmasker toe dat is gekoppeld aan of ontkoppeld van de laag met slimme objecten. Probeer verschillende ontwerpen met lage resolutie placeholder-afbeeldingen die u later vervangt door definitieve versies. In Adobe� Photoshop� kunt u de inhoud van een afbeelding insluiten in een PSD-document. Meer informatie vindt u hier:https://helpx.adobe.com/photoshop/using/create-smart-objects.html Een laag met een ingebed slim object bevat geplaatste (PlLd) en verkochte bronnen met slimme objecteigenschappen. De PlLd-bron kan alleen zijn voor PSD-versies ouder dan 10. Deze bronnen bevatten UniqueId van de LiFdDataSource in de globale Lnk2Resource met de ingebedde bestandsnaam en andere parameters, inclusief de ingesloten bestandsinhoud in de originele indeling als een byte-array.

public class SmartObjectLayer : Layer

Eigenschappen

NaamBeschrijving
AutoAdjustPalette { get; set; }Haalt of stelt een waarde in die aangeeft of het palet automatisch wordt aangepast.
virtual BackgroundColor { get; set; }Haalt of stelt een waarde in voor de achtergrondkleur.
override BitsPerPixel { get; }Haalt het aantal beeldbits per pixel op.
BlendingOptions { get; }Krijgt de mengopties.
virtual BlendModeKey { get; set; }Haalt of stelt de overvloeimodussleutel in.
BlendModeSignature { get; }Haalt de handtekening van de overvloeimodus op.
Bottom { get; set; }Haalt of stelt de positie van de onderste laag in.
Bounds { get; }Haalt de afbeeldingsgrenzen op.
BufferSizeHint { get; set; }Haalt de hint voor de buffergrootte op of stelt deze in, de maximale toegestane grootte voor alle interne buffers.
ChannelInformation { get; set; }Haalt of stelt de kanaalinformatie in.
ChannelsCount { get; }Haalt het aantal kanalen van de laag op.
Clipping { get; set; }Haalt of stelt het knippen van de laag in. 0 = basis, 1 = niet-basis.
Container { get; }Krijgt deImage container.
Contents { get; set; }Haalt de inhoud van de slimme objectlaag op of stelt deze in. De ingesloten inhoud van het slimme object is het ingesloten onbewerkte afbeeldingsbestand:Data en zijn eigenschappen. De inhoud van het gekoppelde slimme object is de onbewerkte inhoud van het gekoppelde afbeeldingsbestand als het beschikbaar is en zijn eigenschappen:LiFeDataSource . We ondersteunen geen laden vanuit de Adobe� Photoshop� �� grafische bibliotheek wanneerIsLibraryLink is waar. Voor gewone linkbestanden gebruiken we in eerste instantieRelativePath om het bestand te zoeken relative ten opzichte van het pad naar de bronafbeeldingSourceImagePath , als het niet beschikbaar is, kijken we ernaarFullPath , zo niet, dan zoeken we naar het linkbestand in dezelfde map waar onze afbeelding staat:SourceImagePath .
ContentsBounds { get; set; }Haalt of stelt de grenzen van de inhoud van het slimme object in.
ContentsSource { get; set; }Haalt de bron van de inhoud van het slimme object op of stelt deze in.
ContentType { get; }Haalt het type inhoud van de slimme objectlaag op. De ingesloten inhoud van het slimme object is het ingesloten onbewerkte afbeeldingsbestand:Data . De inhoud van het gekoppelde slimme object is de onbewerkte inhoud van het gekoppelde afbeeldingsbestand, indien beschikbaar:LiFeDataSource . We ondersteunen geen laden vanuit de Adobe� Photoshop� �� grafische bibliotheek wanneerIsLibraryLink is waar. Voor gewone linkbestanden gebruiken we in eerste instantieRelativePath om het bestand te zoeken relative ten opzichte van het pad naar de bronafbeeldingSourceImagePath , als het niet beschikbaar is, kijken we ernaarFullPath , zo niet, dan zoeken we naar het linkbestand in dezelfde map waar onze afbeelding staat:SourceImagePath .
DataStreamContainer { get; }Haalt de gegevensstroom van het object op.
DisplayName { get; set; }Haalt de weergavenaam van de laag op of stelt deze in.
Disposed { get; }Krijgt een waarde die aangeeft of deze instantie is verwijderd.
ExtraLength { get; }Krijgt de extra informatielengte van de laag in bytes.
virtual FileFormat { get; }Krijgt een waarde van bestandsformaat
Filler { get; set; }Haalt of stelt de laagvuller in.
FillOpacity { get; set; }Hiermee wordt de vuldekking opgehaald of ingesteld.
Flags { get; set; }Haalt of stelt de laagvlaggen in. bit 0 = transparantie beschermd; bit 1 = zichtbaar; bit 2 = verouderd; bit 3 = 1 voor Photoshop 5.0 en later, geeft aan of bit 4 nuttige informatie bevat; bit 4 = pixelgegevens die niet relevant zijn voor het uiterlijk van het document.
override HasAlpha { get; }Krijgt een waarde die aangeeft of deze instantie alfa heeft.
virtual HasBackgroundColor { get; set; }Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de afbeelding een achtergrondkleur heeft.
virtual HasTransparentColor { get; set; }Krijgt een waarde die aangeeft of de afbeelding een transparante kleur heeft.
override Height { get; }Haalt de afbeeldingshoogte op.
virtual HorizontalResolution { get; set; }Haalt of stelt de horizontale resolutie, in pixels per inch, hiervan inRasterImage .
virtual ImageOpacity { get; }Krijgt dekking van deze afbeelding.
InterruptMonitor { get; set; }Haalt of stelt de interruptmonitor in.
override IsCached { get; }Krijgt een waarde die aangeeft of afbeeldingsgegevens momenteel in de cache zijn opgeslagen.
IsRawDataAvailable { get; }Krijgt een waarde die aangeeft of het laden van onbewerkte gegevens beschikbaar is.
IsVisible { get; set; }Haalt of stelt een waarde in die aangeeft of de laag zichtbaar is
virtual IsVisibleInGroup { get; }Krijgt een waarde die aangeeft of deze instantie zichtbaar is in groep (als laag niet in groep is, betekent dit root-groep).
LayerBlendingRangesData { get; set; }Haalt de gegevens van het overvloeibereik van de lagen op of stelt deze in.
LayerCreationDateTime { get; set; }Haalt de aanmaakdatum van de laag op of stelt deze in.
LayerLock { get; set; }Haalt of stelt de laagvergrendeling in. Merk op dat als de vlag LayerFlags.TransparencyProtected is ingesteld, deze wordt overschreven door de laagvergrendelingsvlag. Om de vlag LayerFlags.TransparencyProtected terug te geven, moet de laagoptielaag worden toegepast.Flags |= LayerFlags.TransparencyProtected
LayerMaskData { get; set; }Haalt of stelt de laagmaskergegevens in.
LayerOptions { get; }Haalt de laagopties op.
Left { get; set; }Haalt of stelt de positie van de linkerlaag in.
Length { get; }Krijgt de totale lengte van de laag in bytes.
Name { get; set; }Haalt de naam van de laag op of stelt deze in.
Opacity { get; set; }Hiermee wordt de laagdekking opgehaald of ingesteld. 0 = transparant, 255 = ondoorzichtig.
Palette { get; set; }Haalt of stelt het kleurenpalet in. Het kleurenpalet wordt niet gebruikt wanneer pixels direct worden weergegeven.
virtual PremultiplyComponents { get; set; }Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de afbeeldingscomponenten vooraf moeten worden vermenigvuldigd.
RawCustomColorConverter { get; set; }Haalt de aangepaste kleuromzetter op of stelt deze in
virtual RawDataFormat { get; }Haalt het ruwe gegevensformaat op.
RawDataSettings { get; }Haalt de huidige instellingen voor onbewerkte gegevens op. Merk op dat wanneer u deze instellingen gebruikt, de gegevens worden geladen zonder conversie.
RawFallbackIndex { get; set; }Haalt de fallback-index op of stelt deze in om te gebruiken wanneer de paletindex buiten de grenzen ligt
RawIndexedColorConverter { get; set; }Haalt de geïndexeerde kleuromzetter op of stelt deze in
virtual RawLineSize { get; }Krijgt de onbewerkte regelgrootte in bytes.
Resources { get; set; }Haalt of stelt de laagbronnen in.
Right { get; set; }Haalt of stelt de juiste laagpositie in.
SheetColorHighlight { get; set; }Haalt of stelt de kleuraccentuering van het decoratieve blad in de lijst met lagen in
Size { get; }Haalt de afbeeldingsgrootte op.
SmartFilters { get; }Krijgt de slimme filters.
SmartObjectProvider { get; }Haalt de slimme objectprovider op.
Top { get; set; }Haalt of stelt de positie van de bovenste laag in.
virtual TransparentColor { get; set; }Krijgt de transparante kleur van de afbeelding.
virtual UpdateXmpData { get; set; }Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de XMP-metagegevens moeten worden bijgewerkt.
virtual UseRawData { get; set; }Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het laden van onbewerkte gegevens moet worden gebruikt wanneer het laden van onbewerkte gegevens beschikbaar is.
virtual VerticalResolution { get; set; }Hiermee wordt de verticale resolutie, in pixels per inch, hiervan opgehaald of ingesteldRasterImage .
override Width { get; }Haalt de beeldbreedte op.
virtual XmpData { get; set; }Haalt de XMP-metadata op of stelt deze in.

methoden

NaamBeschrijving
AddLayerMask(LayerMaskData)Voegt het masker toe aan de huidige laag.
override AdjustBrightness(int)Aanpassing van een helderheid voor afbeelding.
override AdjustContrast(float)Afbeelding contrasterend
override AdjustGamma(float)Gammacorrectie van een afbeelding.
override AdjustGamma(float, float, float)Gammacorrectie van een afbeelding.
override BinarizeBradley(double)Binarisatie van een afbeelding met behulp van Bradley’s adaptieve drempelwaarde-algoritme met behulp van de integrale afbeeldingsdrempelwaarde
override BinarizeBradley(double, int)Binarisatie van een afbeelding met behulp van Bradley’s adaptieve drempelwaarde-algoritme met behulp van de integrale afbeeldingsdrempelwaarde
override BinarizeFixed(byte)Binarisatie van een afbeelding met vooraf gedefinieerde drempel
override BinarizeOtsu()Binarisatie van een afbeelding met Otsu-drempels
override CacheData()Cache de gegevens op en zorgt ervoor dat er geen aanvullende gegevens worden geladen vanaf de onderliggende gegevensDataStreamContainer .
CanSave(ImageOptionsBase)Bepaalt of de afbeelding kan worden opgeslagen in de opgegeven bestandsindeling die wordt weergegeven door de doorgegeven opslagopties.
ConvertToLinked(string)Converteert dit ingesloten slimme object naar een gekoppeld slim object.
override Crop(Rectangle)De afbeelding bijsnijden.
virtual Crop(int, int, int, int)Afbeelding bijsnijden met verschuivingen.
Dispose()Verwijdert de huidige instantie.
Dither(DitheringMethod, int)Voert dithering uit op de huidige afbeelding.
override Dither(DitheringMethod, int, IColorPalette)Voert dithering uit op de huidige afbeelding.
DrawImage(Point, RasterImage)Tekent de afbeelding op laag.
DuplicateLayer()Maakt een nieuwe slimme objectlaag door deze te kopiëren. Merk op dat voor ingesloten slimme objecten de ingesloten afbeelding wordt gedeeld. Als u de ingesloten afbeelding wilt kopiëren, gebruikt uNewSmartObjectViaCopy methode.
EmbedLinked()Sluit het gekoppelde slimme object in deze laag in.
ExportContents(string)Exporteert de ingesloten of gekoppelde inhoud naar een bestand.
virtual Filter(Rectangle, FilterOptionsBase)Filtert de opgegeven rechthoek.
GetArgb32Pixel(int, int)Krijgt een afbeelding 32-bits ARGB-pixel.
GetDefaultArgb32Pixels(Rectangle)Hiermee krijgt u de standaard 32-bits ARGB-pixelarray.
virtual GetDefaultOptions(object[])Krijgt de standaardopties.
GetDefaultPixels(Rectangle, IPartialArgb32PixelLoader)Haalt de standaard pixelarray op met gedeeltelijke pixellader.
GetDefaultRawData(Rectangle, RawDataSettings)Haalt de standaard onbewerkte gegevensarray op.
GetDefaultRawData(Rectangle, IPartialRawDataLoader, RawDataSettings)Haalt de standaard onbewerkte gegevensarray op met behulp van een gedeeltelijke pixellader.
override GetHashCode()Retourneert een hash-code voor deze instantie.
virtual GetModifyDate(bool)Haalt de datum en tijd op waarop de bronafbeelding voor het laatst is gewijzigd.
virtual GetOriginalOptions()Krijgt de opties op basis van de originele bestandsinstellingen. Dit kan handig zijn om de bitdiepte en andere parameters van de originele afbeelding ongewijzigd te laten. Als we bijvoorbeeld een zwart-wit PNG-afbeelding laden met 1 bit per pixel en sla het op met the Save methode, wordt de uitgevoerde PNG-afbeelding met 8-bits per pixel geproduceerd. Om dit te voorkomen en PNG-afbeelding met 1-bits per pixel op te slaan, gebruikt u deze methode om overeenkomstige opslagopties te krijgen en deze door te geven aan deSavemethode als de tweede parameter.
GetPixel(int, int)Krijgt een beeldpixel.
GetSkewAngle()Hiermee wordt de schuine hoek bepaald. Deze methode is van toepassing op gescande tekstdocumenten, om de schuine hoek tijdens het scannen te bepalen.
override Grayscale()Transformatie van een afbeelding naar zijn grijswaardenweergave
LoadArgb32Pixels(Rectangle)Laadt 32-bits ARGB-pixels.
LoadArgb64Pixels(Rectangle)Laadt 64-bits ARGB-pixels.
LoadCmyk32Pixels(Rectangle)Laadt pixels in CMYK-formaat.
LoadContents(LoadOptions)Haalt de ingesloten of gekoppelde afbeeldingsinhoud op van de slimme objectlaag.
LoadPartialArgb32Pixels(Rectangle, IPartialArgb32PixelLoader)Laadt 32-bits ARGB-pixels gedeeltelijk per pakket.
LoadPartialPixels(Rectangle, IPartialPixelLoader)Laadt pixels gedeeltelijk per pakket.
LoadPixels(Rectangle)Laadt pixels.
LoadRawData(Rectangle, RawDataSettings, IPartialRawDataLoader)Laadt onbewerkte gegevens.
LoadRawData(Rectangle, Rectangle, RawDataSettings, IPartialRawDataLoader)Laadt onbewerkte gegevens.
virtual MergeLayerTo(Layer)Voegt de laag samen tot gespecificeerde laag
NewSmartObjectViaCopy()Creëert een nieuwe slimme objectlaag door deze te kopiëren. Reproduceert Laag -> Slimme objecten -> Nieuw slim object via kopiëren-functionaliteit van Adobe� Photoshop�. Merk op dat het alleen is ingeschakeld voor ingesloten slimme objecten omdat de ingesloten afbeelding wordt ook gekopieerd. Als u de ingesloten afbeelding wilt delen, gebruik danDuplicateLayer methode.
NormalizeAngle()Normaliseert de hoek. Deze methode is van toepassing op gescande tekstdocumenten om de scheve scan te verwijderen. Deze methode gebruiktGetSkewAngle EnRotate methoden.
virtual NormalizeAngle(bool, Color)Normaliseert de hoek. Deze methode is van toepassing op gescande tekstdocumenten om de scheve scan te verwijderen. Deze methode gebruiktGetSkewAngle EnRotate methoden.
ReadArgb32ScanLine(int)Leest de hele scanlijn volgens de opgegeven scanlijnindex.
ReadScanLine(int)Leest de hele scanlijn volgens de opgegeven scanlijnindex.
RelinkToFile(string)Koppelt het gekoppelde slimme object opnieuw aan een nieuw bestand. Het is niet nodig om de methode UpdateModifiedContent achteraf aan te roepen.
ReplaceColor(Color, byte, Color)Vervangt de ene kleur door de andere met toegestaan verschil en behoudt de oorspronkelijke alfawaarde om vloeiende randen te voorkomen.
virtual ReplaceColor(int, byte, int)Vervangt de ene kleur door de andere met toegestaan verschil en behoudt de oorspronkelijke alfawaarde om vloeiende randen te voorkomen.
ReplaceContents(Image)Vervangt de slimme objectinhoud die is ingesloten in de slimme objectlaag.
ReplaceContents(string)Vervangt de inhoud door een bestand. Het is niet nodig om de methode UpdateModifiedContent achteraf aan te roepen.
ReplaceContents(Image, ResolutionSetting)Vervangt de slimme objectinhoud die is ingesloten in de slimme objectlaag.
ReplaceContents(string, ResolutionSetting)Vervangt de inhoud door een bestand. Het is niet nodig om de methode UpdateModifiedContent achteraf aan te roepen.
ReplaceNonTransparentColors(Color)Vervangt alle niet-transparante kleuren door nieuwe kleuren en behoudt de oorspronkelijke alfawaarde om vloeiende randen te besparen. Opmerking: als u het gebruikt op afbeeldingen zonder transparantie, worden alle kleuren vervangen door een enkele kleur.
virtual ReplaceNonTransparentColors(int)Vervangt alle niet-transparante kleuren door nieuwe kleuren en behoudt de oorspronkelijke alfawaarde om vloeiende randen te besparen. Opmerking: als u het gebruikt op afbeeldingen zonder transparantie, worden alle kleuren vervangen door een enkele kleur.
Resize(int, int)Wijzigt de grootte van de afbeelding. De standaardLeftTopToLeftTopwordt gebruikt.
override Resize(int, int, ImageResizeSettings)Pas de grootte van de afbeelding aan.
override Resize(int, int, ResizeType)Pas de grootte van de afbeelding aan.
ResizeHeightProportionally(int)Pas de hoogte proportioneel aan.
virtual ResizeHeightProportionally(int, ImageResizeSettings)Pas de hoogte proportioneel aan.
virtual ResizeHeightProportionally(int, ResizeType)Pas de hoogte proportioneel aan.
ResizeWidthProportionally(int)Pas de breedte proportioneel aan.
virtual ResizeWidthProportionally(int, ImageResizeSettings)Pas de breedte proportioneel aan.
virtual ResizeWidthProportionally(int, ResizeType)Pas de breedte proportioneel aan.
virtual Rotate(float)Afbeelding roteren rond het midden.
override Rotate(float, bool, Color)Afbeelding roteren rond het midden.
override RotateFlip(RotateFlipType)Roteert, spiegelt of roteert en spiegelt de afbeelding.
Save()Slaat de afbeeldingsgegevens op in de onderliggende stream.
override Save(Stream)Slaat de gegevens van het object op in de opgegeven stream.
Save(string)Slaat de objectgegevens op naar de opgegeven bestandslocatie.
Save(Stream, ImageOptionsBase)Slaat de afbeeldingsgegevens op in de opgegeven stream in de opgegeven bestandsindeling volgens de opslagopties.
override Save(string, bool)Slaat de objectgegevens op naar de opgegeven bestandslocatie.
override Save(string, ImageOptionsBase)Slaat de objectgegevens op naar de opgegeven bestandslocatie in de opgegeven bestandsindeling volgens de opslagopties.
override Save(Stream, ImageOptionsBase, Rectangle)Slaat de afbeeldingsgegevens op in de opgegeven stream in de opgegeven bestandsindeling volgens de opslagopties.
override Save(string, ImageOptionsBase, Rectangle)Slaat de objectgegevens op naar de opgegeven bestandslocatie in de opgegeven bestandsindeling volgens de opslagopties.
SaveArgb32Pixels(Rectangle, int[])Slaat de 32-bits ARGB-pixels op.
SaveCmyk32Pixels(Rectangle, int[])Slaat de pixels op.
SavePixels(Rectangle, Color[])Slaat de pixels op.
SaveRawData(byte[], int, Rectangle, RawDataSettings)Slaat de onbewerkte gegevens op.
SetArgb32Pixel(int, int, int)Stelt een afbeelding 32-bits ARGB-pixel in voor de opgegeven positie.
override SetPalette(IColorPalette, bool)Stelt het afbeeldingspalet in.
SetPixel(int, int, Color)Stelt een afbeeldingspixel in voor de opgegeven positie.
virtual SetResolution(double, double)Stelt de resolutie hiervoor inRasterImage .
ShallowCopy()Maakt een ondiepe kopie van de huidige laag. Gelievehttps://msdn.microsoft.com/ru-ru/library/system.object.memberwiseclone(v=vs.110).aspx voor uitleg.
virtual ToBitmap()Converteert rasterafbeelding naar de bitmap.
UpdateModifiedContent()Werkt de afbeeldingscache van de slimme objectlaag bij met de gewijzigde inhoud.
WriteArgb32ScanLine(int, int[])Schrijft de hele scanlijn naar de opgegeven scanlijnindex.
WriteScanLine(int, Color[])Schrijft de hele scanlijn naar de opgegeven scanlijnindex.

Voorbeelden

De volgende code demonstreert de ondersteuning van Embedded Smart-objecten.

[C#]

void AssertAreEqual(object actual, object expected)
{
    if (!object.Equals(actual, expected))
    {
        throw new FormatException(string.Format("Actual value {0} are not equal to expected {1}.", actual, expected));
    }
}

// Dit voorbeeld laat zien hoe u de slimme objectlaag in het PSD-bestand kunt wijzigen en de originele ingesloten inhoud van het slimme object kunt exporteren/bijwerken.
const int left = 0;
const int top = 0;
const int right = 0xb;
const int bottom = 0x10;
FileFormat[] formats = new[]
{
    FileFormat.Png, FileFormat.Psd, FileFormat.Bmp, FileFormat.Jpeg, FileFormat.Gif, FileFormat.Tiff, FileFormat.Jpeg2000
};
foreach (FileFormat format in formats)
{
    string formatString = format.ToString().ToLowerInvariant();
    string formatExt = format == FileFormat.Jpeg2000 ? "jpf" : formatString;
    string fileName = "r-embedded-" + formatString;
    string sourceFilePath = fileName + ".psd";
    string pngOutputPath = fileName + "_output.png";
    string psdOutputPath = fileName + "_output.psd";
    string png2OutputPath = fileName + "_updated.png";
    string psd2OutputPath = fileName + "_updated.psd";
    string exportPath = fileName + "_export." + formatExt;
    using (PsdImage image = (PsdImage)Image.Load(sourceFilePath))
    {
        var smartObjectLayer = (SmartObjectLayer)image.Layers[0];

        AssertAreEqual(left, smartObjectLayer.ContentsBounds.Left);
        AssertAreEqual(top, smartObjectLayer.ContentsBounds.Top);
        AssertAreEqual(right, smartObjectLayer.ContentsBounds.Right);
        AssertAreEqual(bottom, smartObjectLayer.ContentsBounds.Bottom);

        // Laten we de ingebedde slimme objectafbeelding exporteren vanuit de PSD slimme objectlaag
        smartObjectLayer.ExportContents(exportPath);

        // Laten we eens kijken of de originele afbeelding correct is opgeslagen
        image.Save(psdOutputPath, new PsdOptions(image));
        image.Save(pngOutputPath, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });

        using (var innerImage = (RasterImage)smartObjectLayer.LoadContents(null))
        {
            AssertAreEqual(format, innerImage.FileFormat);

            // Laten we de originele afbeelding van een slim object omkeren
            var pixels = innerImage.LoadArgb32Pixels(innerImage.Bounds);
            for (int i = 0; i < pixels.Length; i++)
            {
                var pixel = pixels[i];
                var alpha = (int)(pixel & 0xff000000);
                pixels[i] = (~(pixel & 0x00ffffff)) | alpha;
            }

            innerImage.SaveArgb32Pixels(innerImage.Bounds, pixels);

            // Laten we de ingesloten slimme objectafbeelding in de PSD-laag vervangen
            smartObjectLayer.ReplaceContents(innerImage);
        }

        // Laten we eens kijken of de bijgewerkte afbeelding correct is opgeslagen
        image.Save(psd2OutputPath, new PsdOptions(image));
        image.Save(png2OutputPath, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
    }
}

Zie ook