의 새 인스턴스를 초기화합니다.SoLdResource class. 준비된 인스턴스를 얻으려면 Items 속성을 설정하거나 InitializeItems()를 호출해야 합니다. 이 생성자는 다음에서 사용하도록 설계되었습니다.SmartResourceCreator 및 단위 테스트에서. 사용SmartResourceCreator SoLdResource 클래스 생성용.
자식 문서에 대해 현재 선택된 구성 요소의 ID를 가져오거나 설정합니다. 아무것도 선택하지 않으면 -1이 됩니다. 구성 요소는 디자이너가 만들 수 있는 페이지 레이아웃의 구성 요소입니다. 레이어 구성 요소를 사용하면 단일 Adobe® Photoshop® 파일에서 레이아웃의 여러 버전 을 만들고 관리하고 볼 수 있습니다. 레이어 구성 요소는 레이어 패널 상태의 스냅샷입니다. 레이어 구성 요소는 세 가지 유형의 레이어 옵션을 저장하지만 이 속성은 PSD 파일에서 고급 개체 레이어에 대한 레이어 구성 요소 선택 식별자를 가져옵니다. 스마트 오브젝트의 레이어 구성 요소
[C#]// 이 예제는 PSD 파일의 스마트 개체 레이어 데이터 속성을 가져오거나 설정하는 방법을 보여줍니다.voidAssertAreEqual(objectactual,objectexpected){varareEqual=object.Equals(actual,expected);if(!areEqual&&actualisArray&&expectedisArray){varactualArray=(Array)actual;varexpectedArray=(Array)actual;if(actualArray.Length==expectedArray.Length){for(inti=0;i<actualArray.Length;i++){if(!object.Equals(actualArray.GetValue(i),expectedArray.GetValue(i))){break;}}areEqual=true;}}if(!areEqual){thrownewFormatException(string.Format("Actual value {0} are not equal to expected {1}.",actual,expected));}}varsourceFilePath="LayeredSmartObjects8bit2.psd";varoutputFilePath="LayeredSmartObjects8bit2_output.psd";varexpectedValues=newobject[]{newobject[]{true,"76f05a3b-7523-5e42-a1bb-27f4735bffa0",1,1,0x10,PlacedLayerType.Raster,newdouble[8]{29.937922786050663,95.419959734187131,126.85445817782261,1.0540625423957124,172.20861031651307,47.634102808208553,75.292074924741144,142},0.0,0.0,0.0,0d,0d,149d,310d,4,4,1,0,600,0,600,1,310d,149d,72d,UnitTypes.Density,-1,-1,-1,"d3388655-19e4-9742-82f2-f553bb01046a",newdouble[8]{29.937922786050663,95.419959734187131,126.85445817782261,1.0540625423957124,172.20861031651307,47.634102808208553,75.292074924741144,142},UnitTypes.Pixels,newdouble[16]{0.0d,103.33333333333333d,206.66666666666666d,310.0d,0.0d,103.33333333333333d,206.66666666666666d,310.0d,0.0d,103.33333333333333d,206.66666666666666d,310.0d,0.0d,103.33333333333333d,206.66666666666666d,310.0d},UnitTypes.Pixels,newdouble[16]{0.0d,0.0d,0.0d,0.0d,49.666666666666664d,49.666666666666664d,49.666666666666664d,49.666666666666664d,99.333333333333329d,99.333333333333329d,99.333333333333329d,99.333333333333329d,149,149,149,149,},},newobject[]{true,"cf0477a8-8f92-ac4f-9462-f78e26234851",1,1,0x10,PlacedLayerType.Raster,newdouble[8]{37.900314592235681,-0.32118219433001371,185.94210608826535,57.7076819802063,153.32047433609358,140.9311755779743,5.2786828400639294,82.902311403437977,},0.0,0.0,0.0,0d,0d,721d,1280d,4,4,1,0,600,0,600,1,1280d,721d,72d,UnitTypes.Density,-1,-1,-1,"625cc4b9-2c5f-344f-8636-03caf2bd3489",newdouble[8]{37.900314592235681,-0.32118219433001371,185.94210608826535,57.7076819802063,153.32047433609358,140.9311755779743,5.2786828400639294,82.902311403437977,},UnitTypes.Pixels,newdouble[16]{0.0,426.66666666666663,853.33333333333326,1280,0.0,426.66666666666663,853.33333333333326,1280,0.0,426.66666666666663,853.33333333333326,1280,0.0,426.66666666666663,853.33333333333326,1280,},UnitTypes.Pixels,newdouble[16]{0.0,0.0,0.0,0.0,240.33333333333331,240.33333333333331,240.33333333333331,240.33333333333331,480.66666666666663,480.66666666666663,480.66666666666663,480.66666666666663,721,721,721,721,},0,0}};using(PsdImageimage=(PsdImage)Image.Load(sourceFilePath)){SoLdResourceresource=null;intindex=0;foreach(LayerimageLayerinimage.Layers){foreach(varimageResourceinimageLayer.Resources){resource=imageResourceasSoLdResource;if(resource!=null){varexpectedValue=(object[])expectedValues[index++];AssertAreEqual(expectedValue[0],resource.IsCustom);AssertAreEqual(expectedValue[1],resource.UniqueId.ToString());AssertAreEqual(expectedValue[2],resource.PageNumber);AssertAreEqual(expectedValue[3],resource.TotalPages);AssertAreEqual(expectedValue[4],resource.AntiAliasPolicy);AssertAreEqual(expectedValue[5],resource.PlacedLayerType);AssertAreEqual(8,resource.TransformMatrix.Length);AssertAreEqual((double[])expectedValue[6],resource.TransformMatrix);AssertAreEqual(expectedValue[7],resource.Value);AssertAreEqual(expectedValue[8],resource.Perspective);AssertAreEqual(expectedValue[9],resource.PerspectiveOther);AssertAreEqual(expectedValue[10],resource.Top);AssertAreEqual(expectedValue[11],resource.Left);AssertAreEqual(expectedValue[12],resource.Bottom);AssertAreEqual(expectedValue[13],resource.Right);AssertAreEqual(expectedValue[14],resource.UOrder);AssertAreEqual(expectedValue[15],resource.VOrder);AssertAreEqual(expectedValue[16],resource.Crop);AssertAreEqual(expectedValue[17],resource.FrameStepNumerator);AssertAreEqual(expectedValue[18],resource.FrameStepDenominator);AssertAreEqual(expectedValue[19],resource.DurationNumerator);AssertAreEqual(expectedValue[20],resource.DurationDenominator);AssertAreEqual(expectedValue[21],resource.FrameCount);AssertAreEqual(expectedValue[22],resource.Width);AssertAreEqual(expectedValue[23],resource.Height);AssertAreEqual(expectedValue[24],resource.Resolution);AssertAreEqual(expectedValue[25],resource.ResolutionUnit);AssertAreEqual(expectedValue[26],resource.Comp);AssertAreEqual(expectedValue[27],resource.CompId);AssertAreEqual(expectedValue[28],resource.OriginalCompId);AssertAreEqual(expectedValue[29],resource.PlacedId.ToString());AssertAreEqual((IEnumerable)expectedValue[30],resource.NonAffineTransformMatrix);if(resource.IsCustom){AssertAreEqual(expectedValue[31],resource.HorizontalMeshPointUnit);AssertAreEqual((double[])expectedValue[32],resource.HorizontalMeshPoints);AssertAreEqual(expectedValue[33],resource.VerticalMeshPointUnit);AssertAreEqual((double[])expectedValue[34],resource.VerticalMeshPoints);vartemp=resource.VerticalMeshPoints;resource.VerticalMeshPoints=resource.HorizontalMeshPoints;resource.HorizontalMeshPoints=temp;}// 이 값은 PlLdResource(지정된 UniqueId 포함)에서도 변경되어야 합니다.// 그리고 그 중 일부는 LinkDataSource의 밑줄 스마트 개체와 일치해야 합니다.resource.PageNumber=2;resource.TotalPages=3;resource.AntiAliasPolicy=0;resource.Value=1.23456789;resource.Perspective=0.123456789;resource.PerspectiveOther=0.987654321;resource.Top=-126;resource.Left=-215;resource.Bottom=248;resource.Right=145;resource.Crop=4;resource.FrameStepNumerator=1;resource.FrameStepDenominator=601;resource.DurationNumerator=2;resource.DurationDenominator=602;resource.FrameCount=11;resource.Width=541;resource.Height=249;resource.Resolution=144;resource.Comp=21;resource.CompId=22;resource.TransformMatrix=newdouble[8]{12.937922786050663,19.419959734187131,2.85445817782261,1.0540625423957124,7.20861031651307,14.634102808208553,17.292074924741144,4};resource.NonAffineTransformMatrix=newdouble[8]{129.937922786050663,195.419959734187131,26.85445817782261,12.0540625423957124,72.20861031651307,147.634102808208553,175.292074924741144,42};// 이 고유 ID는 참조에서 변경되어야 합니다.resource.PlacedId=newGuid("12345678-9abc-def0-9876-54321fecba98");// 일부 매개변수에 주의: Adobe® Photoshop®에서 이미지를 읽을 수 없게 될 수 있습니다.////resource.UOrder = 6;////resource.VOrder = 9;// 변경하지 않으면 자유 변형을 사용할 수 없습니다.// 또는 밑줄 스마트 객체를 벡터 유형으로 변경////resource.PlacedLayerType = PlacedLayerType.Vector;// 이 고유 ID를 가진 유효한 PlLdResource가 있어야 합니다.////resource.UniqueId = new Guid("98765432-10fe-cba0-1234-56789abcdef0");break;}}}AssertAreEqual(true,resource!=null);image.Save(outputFilePath,newPsdOptions(image));}