The following code demonstrates support of GrdmResource resource.
[C#]stringsourceFile="gradient_map_default.psd";stringoutputFile="gradient_map_res.psd";using(varimage=(PsdImage)Image.Load(sourceFile,newPsdLoadOptions())){Layerlayer=image.Layers[1];GrdmResourcegrdmResource=(GrdmResource)layer.Resources[0];// check current valuesAssertAreEqual(false,grdmResource.Reverse);AssertAreEqual((ulong)65535,grdmResource.ColorPoints[1].RawColor.Components[2].Value);AssertAreEqual((ulong)65535,grdmResource.ColorPoints[1].RawColor.Components[3].Value);grdmResource.Reverse=true;// Red color for second gradient color pointgrdmResource.ColorPoints[1].RawColor.Components[1].Value=ushort.MaxValue;grdmResource.ColorPoints[1].RawColor.Components[2].Value=0;grdmResource.ColorPoints[1].RawColor.Components[3].Value=0;image.Save(outputFile,newPsdOptions());}using(varimage=(PsdImage)Image.Load(outputFile)){Layerlayer=image.Layers[1];GrdmResourcegrdmResource=(GrdmResource)layer.Resources[0];// check changed valuesAssertAreEqual(true,grdmResource.Reverse);AssertAreEqual((ulong)0,grdmResource.ColorPoints[1].RawColor.Components[2].Value);AssertAreEqual((ulong)0,grdmResource.ColorPoints[1].RawColor.Components[3].Value);}voidAssertAreEqual(objectexpected,objectactual,stringmessage=null){if(!object.Equals(expected,actual)){thrownewException(message??"Objects are not equal.");}}