Class SmartObjectLayer

SmartObjectLayer class

PSD 파일에 포함된 SmartObjectLayer 클래스 또는 외부 파일에 연결된 스마트 개체를 정의합니다. 스마트 개체를 사용하여 다음을 수행할 수 있습니다. 비파괴 변형을 수행합니다. 변형이 원본 데이터에 영향을 주지 않기 때문에 원본 이미지 데이터나 품질을 잃지 않고 레이어 의 크기 조정, 회전, 기울이기, 왜곡, 원근 변형 또는 뒤틀기를 수행할 수 있습니다. 래스터화됩니다. 비파괴 필터링을 수행합니다. 언제든지 스마트 오브젝트에 적용된 필터를 편집할 수 있습니다. 하나의 스마트 오브젝트를 편집하고 연결된 모든 인스턴스를 자동으로 업데이트합니다. 스마트 오브젝트 레이어에 연결되거나 연결 해제된 레이어 마스크를 적용합니다. 낮은 나중에 최종 버전으로 대체할 해상도 자리 표시자 이미지입니다. Adobe� Photoshop�에서 이미지 내용을 PSD 문서에 포함할 수 있습니다. 추가 정보:https://helpx.adobe.com/photoshop/using/create-smart-objects.html 포함된 스마트 개체가 있는 레이어에는 스마트 개체 속성이 있는 배치된(PlLd) 및 SoLd 리소스가 포함되어 있습니다. PlLd 리소스는 10보다 오래된 PSD 버전의 경우 단독으로 사용할 수 있습니다. 이러한 리소스에는 filename 및 바이트 배열로 원래 형식으로 포함된 파일 내용을 포함하는 기타 매개변수.

public class SmartObjectLayer : Layer

속성

이름설명
AutoAdjustPalette { get; set; }팔레트 자동 조정 여부를 나타내는 값을 가져오거나 설정합니다.
virtual BackgroundColor { get; set; }배경색 값을 가져오거나 설정합니다.
override BitsPerPixel { get; }픽셀당 이미지 비트를 가져옵니다.
BlendingOptions { get; }혼합 옵션을 가져옵니다.
virtual BlendModeKey { get; set; }혼합 모드 키를 가져오거나 설정합니다.
BlendModeSignature { get; }혼합 모드 서명을 가져옵니다.
Bottom { get; set; }하단 레이어 위치를 가져오거나 설정합니다.
Bounds { get; }이미지 범위를 가져옵니다.
BufferSizeHint { get; set; }모든 내부 버퍼에 대해 정의된 최대 허용 크기인 버퍼 크기 힌트를 가져오거나 설정합니다.
ChannelInformation { get; set; }채널 정보를 가져오거나 설정합니다.
ChannelsCount { get; }레이어의 채널 수를 가져옵니다.
Clipping { get; set; }레이어 클리핑을 가져오거나 설정합니다. 0 = 기본, 1 = 기본이 아님.
Container { get; }가져오기Image 컨테이너.
Contents { get; set; }스마트 개체 레이어 콘텐츠를 가져오거나 설정합니다. 포함된 스마트 개체 콘텐츠는 포함된 원시 이미지 파일입니다.Data 및 해당 속성. 연결된 고급 개체 콘텐츠는 연결된 이미지 파일의 원시 콘텐츠(사용 가능한 경우)이며 해당 속성은 다음과 같습니다.LiFeDataSource . Adobe� Photoshop� � 그래픽 라이브러리에서 로드하는 것은 지원하지 않습니다.IsLibraryLink is true. 일반 링크 파일의 경우 처음에는RelativePath 소스 이미지 경로에 대해 상대적으로 파일 찾기SourceImagePath , 사용할 수 없는 경우 살펴봅니다.FullPath , 그렇지 않은 경우 이미지가 있는 동일한 디렉토리에서 링크 파일을 찾습니다.SourceImagePath .
ContentsBounds { get; set; }스마트 개체 콘텐츠의 범위를 가져오거나 설정합니다.
ContentsSource { get; set; }스마트 개체 콘텐츠의 소스를 가져오거나 설정합니다.
ContentType { get; }스마트 개체 레이어 콘텐츠의 유형을 가져옵니다. 포함된 스마트 개체 콘텐츠는 포함된 원시 이미지 파일입니다.Data . 연결된 고급 개체 콘텐츠는 연결된 이미지 파일의 원시 콘텐츠입니다(사용 가능한 경우).LiFeDataSource . Adobe� Photoshop� � 그래픽 라이브러리에서 로드하는 것은 지원하지 않습니다.IsLibraryLink is true. 일반 링크 파일의 경우 처음에는RelativePath 소스 이미지 경로에 대해 상대적으로 파일 찾기SourceImagePath , 사용할 수 없는 경우 살펴봅니다.FullPath , 그렇지 않은 경우 이미지가 있는 동일한 디렉토리에서 링크 파일을 찾습니다.SourceImagePath .
DataStreamContainer { get; }개체의 데이터 스트림을 가져옵니다.
DisplayName { get; set; }레이어의 표시 이름을 가져오거나 설정합니다.
Disposed { get; }이 인스턴스가 삭제되었는지 여부를 나타내는 값을 가져옵니다.
ExtraLength { get; }레이어 추가 정보 길이를 바이트 단위로 가져옵니다.
virtual FileFormat { get; }파일 format 의 값을 가져옵니다.
Filler { get; set; }레이어 필러를 가져오거나 설정합니다.
FillOpacity { get; set; }채우기 불투명도를 가져오거나 설정합니다.
Flags { get; set; }레이어 플래그를 가져오거나 설정합니다. 비트 0 = 투명도 보호됨; 비트 1 = 표시됨; 비트 2 = 사용되지 않음; 비트 3 = Photoshop 5.0 이상에서 1, 비트 4에 유용한 정보가 있는지 알려줌; 비트 4 = 문서의 모양과 무관한 픽셀 데이터.
override HasAlpha { get; }이 인스턴스에 알파가 있는지 여부를 나타내는 값을 가져옵니다.
virtual HasBackgroundColor { get; set; }이미지에 배경색이 있는지 여부를 나타내는 값을 가져오거나 설정합니다.
virtual HasTransparentColor { get; set; }이미지가 투명한 색상인지 여부를 나타내는 값을 가져옵니다.
override Height { get; }이미지 높이를 가져옵니다.
virtual HorizontalResolution { get; set; }수평 해상도(인치당 픽셀 수)를 가져오거나 설정합니다.RasterImage .
virtual ImageOpacity { get; }이 이미지의 불투명도를 가져옵니다.
InterruptMonitor { get; set; }인터럽트 모니터를 가져오거나 설정합니다.
override IsCached { get; }이미지 데이터가 현재 캐시되어 있는지 여부를 나타내는 값을 가져옵니다.
IsRawDataAvailable { get; }원시 데이터 로드 가능 여부를 나타내는 값을 가져옵니다.
IsVisible { get; set; }레이어가 보이는지 나타내는 값을 가져오거나 설정합니다
virtual IsVisibleInGroup { get; }이 인스턴스가 그룹에 있는지 여부를 나타내는 값을 가져옵니다(레이어가 그룹에 없으면 루트 그룹을 의미합니다).
LayerBlendingRangesData { get; set; }레이어 혼합 범위 데이터를 가져오거나 설정합니다.
LayerCreationDateTime { get; set; }레이어 생성 날짜 시간을 가져오거나 설정합니다.
LayerLock { get; set; }레이어 잠금을 가져오거나 설정합니다. 플래그 LayerFlags.TransparencyProtected가 설정되면 레이어 잠금 플래그로 덮어씁니다.
LayerMaskData { get; set; }레이어 마스크 데이터를 가져오거나 설정합니다.
LayerOptions { get; }레이어 옵션을 가져옵니다.
Left { get; set; }왼쪽 레이어 위치를 가져오거나 설정합니다.
Length { get; }전체 레이어 길이를 바이트 단위로 가져옵니다.
Name { get; set; }레이어 이름을 가져오거나 설정합니다.
Opacity { get; set; }레이어 불투명도를 가져오거나 설정합니다. 0 = 투명, 255 = 불투명.
Palette { get; set; }색상표를 가져오거나 설정합니다. 픽셀을 직접 표현하는 경우 색상 팔레트를 사용하지 않습니다.
virtual PremultiplyComponents { get; set; }이미지 구성 요소를 미리 곱해야 하는지 여부를 나타내는 값을 가져오거나 설정합니다.
RawCustomColorConverter { get; set; }사용자 정의 색상 converter 를 가져오거나 설정합니다.
virtual RawDataFormat { get; }원시 데이터 형식을 가져옵니다.
RawDataSettings { get; }현재 원시 데이터 설정을 가져옵니다. 이러한 설정을 사용하면 변환 없이 데이터가 로드됩니다.
RawFallbackIndex { get; set; }팔레트 인덱스가 범위를 벗어날 때 사용할 폴백 인덱스를 가져오거나 설정합니다.
RawIndexedColorConverter { get; set; }인덱스 색상 converter 를 가져오거나 설정합니다.
virtual RawLineSize { get; }원시 라인 크기를 바이트 단위로 가져옵니다.
Resources { get; set; }레이어 리소스를 가져오거나 설정합니다.
Right { get; set; }올바른 레이어 위치를 가져오거나 설정합니다.
SheetColorHighlight { get; set; }레이어의 list 에서 장식 시트 색상 하이라이트를 가져오거나 설정합니다.
Size { get; }이미지 크기를 가져옵니다.
SmartFilters { get; }스마트 필터를 가져옵니다.
SmartObjectProvider { get; }스마트 개체 공급자를 가져옵니다.
Top { get; set; }최상위 레이어 위치를 가져오거나 설정합니다.
virtual TransparentColor { get; set; }이미지 투명 색상을 가져옵니다.
virtual UpdateXmpData { get; set; }XMP 메타데이터 업데이트 여부를 나타내는 값을 가져오거나 설정합니다.
virtual UseRawData { get; set; }Raw 데이터 로딩이 가능할 때 Raw 데이터 로딩을 사용할지 여부를 나타내는 값을 가져오거나 설정합니다.
virtual VerticalResolution { get; set; }수직 해상도(인치당 픽셀 수)를 가져오거나 설정합니다.RasterImage .
override Width { get; }이미지 너비를 가져옵니다.
virtual XmpData { get; set; }XMP 메타데이터를 가져오거나 설정합니다.

행동 양식

이름설명
AddLayerMask(LayerMaskData)현재 레이어에 마스크를 추가합니다.
override AdjustBrightness(int)이미지의 밝기를 조정합니다.
override AdjustContrast(float)이미지 대비
override AdjustGamma(float)이미지의 감마 보정.
override AdjustGamma(float, float, float)이미지의 감마 보정.
override BinarizeBradley(double)적분 이미지 thresholding 를 사용하는 Bradley의 적응 임계값 알고리즘을 사용한 이미지의 이진화
override BinarizeBradley(double, int)적분 이미지 thresholding 를 사용하는 Bradley의 적응 임계값 알고리즘을 사용한 이미지의 이진화
override BinarizeFixed(byte)사전 정의된 threshold 를 사용한 이미지의 이진화
override BinarizeOtsu()Otsu thresholding 를 사용한 이미지의 이진화
override CacheData()데이터를 캐시하고 기본에서 추가 데이터 로드가 수행되지 않도록 합니다.DataStreamContainer .
CanSave(ImageOptionsBase)전달된 저장 옵션으로 표시되는 지정된 파일 형식으로 이미지를 저장할 수 있는지 여부를 결정합니다.
ConvertToLinked(string)이 포함된 스마트 개체를 연결된 스마트 개체로 변환합니다.
override Crop(Rectangle)이미지 자르기.
virtual Crop(int, int, int, int)시프트로 이미지 자르기.
Dispose()현재 인스턴스를 삭제합니다.
Dither(DitheringMethod, int)현재 이미지에서 디더링을 수행합니다.
override Dither(DitheringMethod, int, IColorPalette)현재 이미지에서 디더링을 수행합니다.
DrawImage(Point, RasterImage)레이어에 이미지를 그립니다.
DuplicateLayer()이 레이어를 복사하여 새 스마트 개체 레이어를 생성합니다. 포함된 스마트 개체의 경우 포함된 이미지가 공유된다는 점에 유의하십시오. 포함된 이미지를 복사하려면 다음을 사용하십시오.NewSmartObjectViaCopy 방법.
EmbedLinked()이 레이어에 연결된 고급 개체를 포함합니다.
ExportContents(string)포함되거나 연결된 콘텐츠를 파일로 내보냅니다.
virtual Filter(Rectangle, FilterOptionsBase)지정된 사각형을 필터링합니다.
GetArgb32Pixel(int, int)이미지 32비트 ARGB 픽셀을 가져옵니다.
GetDefaultArgb32Pixels(Rectangle)기본 32비트 ARGB 픽셀 배열을 가져옵니다.
virtual GetDefaultOptions(object[])기본 옵션을 가져옵니다.
GetDefaultPixels(Rectangle, IPartialArgb32PixelLoader)부분 픽셀 로더를 사용하여 기본 픽셀 배열을 가져옵니다.
GetDefaultRawData(Rectangle, RawDataSettings)기본 원시 데이터 배열을 가져옵니다.
GetDefaultRawData(Rectangle, IPartialRawDataLoader, RawDataSettings)부분 픽셀 로더를 사용하여 기본 원시 데이터 배열을 가져옵니다.
override GetHashCode()이 인스턴스에 대한 해시 코드를 반환합니다.
virtual GetModifyDate(bool)리소스 이미지가 마지막으로 수정된 날짜와 시간을 가져옵니다.
virtual GetOriginalOptions()원본 파일 설정을 기반으로 옵션을 가져옵니다. 이것은 원본 이미지의 비트 심도 및 기타 매개 변수를 변경하지 않고 유지하는 데 유용할 수 있습니다. 예를 들어 흑백 PNG 이미지를 픽셀당 1비트로 로드한 다음 the 를 사용하여 저장Save 방법을 사용하면 픽셀당 8비트의 출력 PNG 이미지가 생성됩니다. 이를 피하고 픽셀당 1비트의 PNG 이미지를 저장하려면 이 방법을 사용하여 해당 저장 옵션을 가져오고 them 를Save메소드를 두 번째 매개변수로 지정합니다.
GetPixel(int, int)이미지 픽셀을 가져옵니다.
GetSkewAngle()기울이기 각도를 가져옵니다. 이 방법은 스캔할 때 기울기 각도를 결정하기 위해 스캔한 텍스트 문서에 적용할 수 있습니다.
override Grayscale()이미지를 그레이스케일 표현으로 변환
LoadArgb32Pixels(Rectangle)32비트 ARGB 픽셀을 로드합니다.
LoadArgb64Pixels(Rectangle)64비트 ARGB 픽셀을 로드합니다.
LoadCmyk32Pixels(Rectangle)CMYK 형식으로 픽셀을 로드합니다.
LoadContents(LoadOptions)스마트 개체 레이어의 포함되거나 연결된 이미지 콘텐츠를 가져옵니다.
LoadPartialArgb32Pixels(Rectangle, IPartialArgb32PixelLoader)팩별로 부분적으로 32비트 ARGB 픽셀을 로드합니다.
LoadPartialPixels(Rectangle, IPartialPixelLoader)픽셀을 팩 단위로 부분적으로 로드합니다.
LoadPixels(Rectangle)픽셀을 로드합니다.
LoadRawData(Rectangle, RawDataSettings, IPartialRawDataLoader)원시 데이터를 로드합니다.
LoadRawData(Rectangle, Rectangle, RawDataSettings, IPartialRawDataLoader)원시 데이터를 로드합니다.
virtual MergeLayerTo(Layer)레이어를 지정된 layer 에 병합합니다.
NewSmartObjectViaCopy()이를 대처하여 새로운 스마트 오브젝트 레이어를 생성합니다. Adobe� Photoshop의 Layer -> Smart Objects -> New Smart Object via Copy 기능을 재현합니다�. 임베디드 스마트 오브젝트에 대해서만 활성화됩니다. 또한 복사됩니다. 포함된 이미지를 공유하려면 사용DuplicateLayer 방법.
NormalizeAngle()각도를 정규화합니다. 이 방법은 기울어진 스캔을 제거하기 위해 스캔한 텍스트 문서에 적용할 수 있습니다. 이 방법은 다음을 사용합니다.GetSkewAngle 그리고Rotate 방법.
virtual NormalizeAngle(bool, Color)각도를 정규화합니다. 이 방법은 기울어진 스캔을 제거하기 위해 스캔한 텍스트 문서에 적용할 수 있습니다. 이 방법은 다음을 사용합니다.GetSkewAngle 그리고Rotate 방법.
ReadArgb32ScanLine(int)지정된 스캔 라인 인덱스로 전체 스캔 라인을 읽습니다.
ReadScanLine(int)지정된 스캔 라인 인덱스로 전체 스캔 라인을 읽습니다.
RelinkToFile(string)연결된 스마트 개체를 새 파일에 다시 연결합니다. 나중에 UpdateModifiedContent 메서드를 호출할 필요가 없습니다.
ReplaceColor(Color, byte, Color)한 색상을 허용되는 차이가 있는 다른 색상으로 바꾸고 원래 알파 값을 유지하여 매끄러운 가장자리를 저장합니다.
virtual ReplaceColor(int, byte, int)한 색상을 허용되는 차이가 있는 다른 색상으로 바꾸고 원래 알파 값을 유지하여 매끄러운 가장자리를 저장합니다.
ReplaceContents(Image)스마트 개체 레이어에 포함된 스마트 개체 콘텐츠를 대체합니다.
ReplaceContents(string)내용을 파일로 바꿉니다. 나중에 UpdateModifiedContent 메서드를 호출할 필요가 없습니다.
ReplaceContents(Image, ResolutionSetting)스마트 개체 레이어에 포함된 스마트 개체 콘텐츠를 대체합니다.
ReplaceContents(string, ResolutionSetting)내용을 파일로 바꿉니다. 나중에 UpdateModifiedContent 메서드를 호출할 필요가 없습니다.
ReplaceNonTransparentColors(Color)모든 불투명 색상을 새 색상으로 교체하고 원래 알파 값을 유지하여 부드러운 가장자리를 저장합니다. 참고: 투명하지 않은 이미지에 사용하면 모든 색상이 단일 색상으로 교체됩니다.
virtual ReplaceNonTransparentColors(int)모든 불투명 색상을 새 색상으로 교체하고 원래 알파 값을 유지하여 부드러운 가장자리를 저장합니다. 참고: 투명하지 않은 이미지에 사용하면 모든 색상이 단일 색상으로 교체됩니다.
Resize(int, int)이미지 크기를 조정합니다. 기본값LeftTopToLeftTop사용중입니다.
override Resize(int, int, ImageResizeSettings)이미지 크기를 조정합니다.
override Resize(int, int, ResizeType)이미지 크기를 조정합니다.
ResizeHeightProportionally(int)높이를 비례적으로 조정합니다.
virtual ResizeHeightProportionally(int, ImageResizeSettings)높이를 비례적으로 조정합니다.
virtual ResizeHeightProportionally(int, ResizeType)높이를 비례적으로 조정합니다.
ResizeWidthProportionally(int)너비를 비례적으로 조정합니다.
virtual ResizeWidthProportionally(int, ImageResizeSettings)너비를 비례적으로 조정합니다.
virtual ResizeWidthProportionally(int, ResizeType)너비를 비례적으로 조정합니다.
virtual Rotate(float)이미지를 중심으로 회전합니다.
override Rotate(float, bool, Color)이미지를 중심으로 회전합니다.
override RotateFlip(RotateFlipType)이미지를 회전, 뒤집기 또는 회전하고 뒤집습니다.
Save()이미지 데이터를 기본 스트림에 저장합니다.
override Save(Stream)개체의 데이터를 지정된 스트림에 저장합니다.
Save(string)개체의 데이터를 지정된 파일 위치에 저장합니다.
Save(Stream, ImageOptionsBase)이미지의 데이터를 저장 옵션에 따라 지정된 파일 형식으로 지정된 스트림에 저장합니다.
override Save(string, bool)개체의 데이터를 지정된 파일 위치에 저장합니다.
override Save(string, ImageOptionsBase)저장 옵션에 따라 객체의 데이터를 지정된 파일 위치에 지정된 파일 형식으로 저장합니다.
override Save(Stream, ImageOptionsBase, Rectangle)이미지의 데이터를 저장 옵션에 따라 지정된 파일 형식으로 지정된 스트림에 저장합니다.
override Save(string, ImageOptionsBase, Rectangle)저장 옵션에 따라 객체의 데이터를 지정된 파일 위치에 지정된 파일 형식으로 저장합니다.
SaveArgb32Pixels(Rectangle, int[])32비트 ARGB 픽셀을 저장합니다.
SaveCmyk32Pixels(Rectangle, int[])픽셀을 저장합니다.
SavePixels(Rectangle, Color[])픽셀을 저장합니다.
SaveRawData(byte[], int, Rectangle, RawDataSettings)원시 데이터를 저장합니다.
SetArgb32Pixel(int, int, int)지정된 위치에 이미지 32비트 ARGB 픽셀을 설정합니다.
override SetPalette(IColorPalette, bool)이미지 팔레트를 설정합니다.
SetPixel(int, int, Color)지정된 위치에 대한 이미지 픽셀을 설정합니다.
virtual SetResolution(double, double)이것에 대한 해상도를 설정합니다.RasterImage .
ShallowCopy()현재 레이어의 얕은 복사본을 생성합니다. 제발https://msdn.microsoft.com/ru-ru/library/system.object.memberwiseclone(v=vs.110).aspx 설명을 위해.
virtual ToBitmap()래스터 이미지를 비트맵으로 변환합니다.
UpdateModifiedContent()수정된 콘텐츠로 스마트 개체 레이어 이미지 캐시를 업데이트합니다.
WriteArgb32ScanLine(int, int[])지정된 스캔 라인 인덱스에 전체 스캔 라인을 씁니다.
WriteScanLine(int, Color[])지정된 스캔 라인 인덱스에 전체 스캔 라인을 씁니다.

다음 코드는 Embedded Smart objects의 지원을 보여줍니다.

[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));
    }
}

// 이 예제는 PSD 파일에서 스마트 오브젝트 레이어를 변경하고 스마트 오브젝트 원본 임베디드 콘텐츠를 내보내거나 업데이트하는 방법을 보여줍니다.
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);

        // PSD 스마트 개체 레이어에서 포함된 스마트 개체 이미지를 내보내겠습니다.
        smartObjectLayer.ExportContents(exportPath);

        // 원본 이미지가 제대로 저장되었는지 확인해보자
        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);

            // 원본 스마트 오브젝트 이미지를 반전시키자
            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);

            // PSD 레이어에 포함된 스마트 오브젝트 이미지를 교체해 보겠습니다.
            smartObjectLayer.ReplaceContents(innerImage);
        }

        // 업데이트된 이미지가 제대로 저장되었는지 확인해보자
        image.Save(psd2OutputPath, new PsdOptions(image));
        image.Save(png2OutputPath, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
    }
}

또한보십시오