Menentukan kelas yang berisi informasi tentang file tersemat dalam format PSD 32 bit per gambar saluran. Sumber tautan mungkin berisi beberapaLiFdDataSource contoh yang dapat diakses oleh pengindeks.
Contoh ini menunjukkan cara mendapatkan dan mengatur properti dari Lnk2Resource dan Lnk3Resource.
[C#]voidAssertAreEqual(objectexpected,objectactual){if(!object.Equals(actual,expected)){thrownewFormatException(string.Format("Actual value {0} are not equal to expected {1}.",actual,expected));}}object[]Lnk2ResourceSupportCases=newobject[]{newobject[]{"00af34a0-a90b-674d-a821-73ee508c5479","rgb8_2x2.png","png",string.Empty,0x53,0d,string.Empty,7,true,0x124L,0x74cL}};object[]LayeredLnk2ResourceSupportCases=newobject[]{newobject[]{"69ac1c0d-1b74-fd49-9c7e-34a7aa6299ef","huset.jpg","JPEG",string.Empty,0x9d46,0d,"xmp.did:0F94B342065B11E395B1FD506DED6B07",7,true,0x9E60L,0xc60cL},newobject[]{"5a7d1965-0eae-b24e-a82f-98c7646424c2","panama-papers.jpg","JPEG",string.Empty,0xF56B,0d,"xmp.did:BDE940CBF51B11E59D759CDA690663E3",7,true,0xF694L,0x10dd4L},};object[]LayeredLnk3ResourceSupportCases=newobject[]{newobject[]{"2fd7ba52-0221-de4c-bdc4-1210580c6caa","panama-papers.jpg","JPEG",string.Empty,0xF56B,0d,"xmp.did:BDE940CBF51B11E59D759CDA690663E3",7,true,0xF694l,0x10dd4L},newobject[]{"372d52eb-5825-8743-81a7-b6f32d51323d","huset.jpg","JPEG",string.Empty,0x9d46,0d,"xmp.did:0F94B342065B11E395B1FD506DED6B07",7,true,0x9E60L,0xc60cL},};varbasePath=""+Path.DirectorySeparatorChar;stringOutput="output"+Path.DirectorySeparatorChar;// Menyimpan data smart object di file PSD ke file.voidSaveSmartObjectData(stringprefix,stringfileName,byte[]data){varfilePath=basePath+prefix+"_"+fileName;using(varcontainer=FileStreamContainer.CreateFileStream(filePath,false)){container.Write(data);}}// Memuat data baru untuk smart object di file PSD.byte[]LoadNewData(stringfileName){using(varcontainer=FileStreamContainer.OpenFileStream(basePath+fileName)){returncontainer.ToBytes();}}// Mendapatkan dan menyetel properti Sumber Daya PSD Lnk2 / Lnk3 dan sumber data liFD-nya dalam gambar PSDvoidExampleOfLnk2ResourceSupport(stringfileName,intdataSourceCount,intlength,intnewLength,object[]dataSourceExpectedValues){using(PsdImageimage=(PsdImage)Image.Load(basePath+fileName)){Lnk2Resourcelnk2Resource=null;foreach(varresourceinimage.GlobalLayerResources){lnk2Resource=resourceasLnk2Resource;if(lnk2Resource!=null){AssertAreEqual(lnk2Resource.DataSourceCount,dataSourceCount);AssertAreEqual(lnk2Resource.Length,length);AssertAreEqual(lnk2Resource.IsEmpty,false);for(inti=0;i<lnk2Resource.DataSourceCount;i++){LiFdDataSourcelifdSource=lnk2Resource[i];object[]expected=(object[])dataSourceExpectedValues[i];AssertAreEqual(LinkDataSourceType.liFD,lifdSource.Type);AssertAreEqual(newGuid((string)expected[0]),lifdSource.UniqueId);AssertAreEqual(expected[1],lifdSource.OriginalFileName);AssertAreEqual(expected[2],lifdSource.FileType.TrimEnd(' '));AssertAreEqual(expected[3],lifdSource.FileCreator.TrimEnd(' '));AssertAreEqual(expected[4],lifdSource.Data.Length);AssertAreEqual(expected[5],lifdSource.AssetModTime);AssertAreEqual(expected[6],lifdSource.ChildDocId);AssertAreEqual(expected[7],lifdSource.Version);AssertAreEqual((bool)expected[8],lifdSource.HasFileOpenDescriptor);AssertAreEqual(expected[9],lifdSource.Length);if(lifdSource.HasFileOpenDescriptor){AssertAreEqual(-1,lifdSource.CompId);AssertAreEqual(-1,lifdSource.OriginalCompId);lifdSource.CompId=int.MaxValue;}SaveSmartObjectData(Output+fileName,lifdSource.OriginalFileName,lifdSource.Data);lifdSource.Data=LoadNewData("new_"+lifdSource.OriginalFileName);AssertAreEqual(expected[10],lifdSource.Length);lifdSource.ChildDocId=Guid.NewGuid().ToString();lifdSource.AssetModTime=double.MaxValue;lifdSource.FileType="test";lifdSource.FileCreator="me";}AssertAreEqual(newLength,lnk2Resource.Length);break;}}AssertAreEqual(true,lnk2Resource!=null);if(image.BitsPerChannel<32)// Penyimpanan 32 bit per saluran belum didukung{image.Save(basePath+Output+fileName,newPsdOptions(image));}}}// Contoh ini mendemonstrasikan cara mendapatkan dan menyetel properti Sumber Daya PSD Lnk2 dan sumber data liFD-nya untuk 8 bit per saluran.ExampleOfLnk2ResourceSupport("rgb8_2x2_embedded_png.psd",1,0x12C,0x0000079c,Lnk2ResourceSupportCases);// Contoh ini mendemonstrasikan cara mendapatkan dan menyetel properti Sumber Daya PSD Lnk3 dan sumber data liFD-nya untuk 32 bit per saluran.ExampleOfLnk2ResourceSupport("Layered PSD file smart objects.psd",2,0x19504,0x0001d3e0,LayeredLnk3ResourceSupportCases);// Contoh ini mendemonstrasikan cara mendapatkan dan menyetel properti Sumber Daya PSD Lnk2 dan sumber data liFD-nya untuk 16 bit per saluran.ExampleOfLnk2ResourceSupport("LayeredSmartObjects16bit.psd",2,0x19504,0x0001d3e0,LayeredLnk2ResourceSupportCases);