Interface ISmartObjectLayerResource
Contenu
[
Cacher
]ISmartObjectLayerResource interface
Définit l’interface ISmartObjectLayerResource qui contient des informations sur une ressource de couche d’objet intelligent dans le fichier PSD. Est également une interface de balisage utilisée pour désigner les ressources Vendu et Sole dans les images Adobe® Photoshop®.
public interface ISmartObjectLayerResource : IPlacedLayerResource
Propriétés
Nom | La description |
---|---|
PlacedId { get; set; } | Obtient ou définit l’identifiant unique de ces données de couche d’objet intelligent dans l’image PSD. |
Exemples
Le code suivant illustre la prise en charge des objets intelligents intégrés.
[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));
}
}
// Cet exemple montre comment modifier le calque d'objet intelligent dans le fichier PSD et exporter/mettre à jour le contenu intégré d'origine de l'objet intelligent.
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);
// Exportons l'image de l'objet intelligent intégré à partir du calque d'objet intelligent PSD
smartObjectLayer.ExportContents(exportPath);
// Vérifions si l'image d'origine est correctement enregistrée
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);
// Inversons l'image originale de l'objet intelligent
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);
// Remplaçons l'image de l'objet intelligent intégré dans la couche PSD
smartObjectLayer.ReplaceContents(innerImage);
}
// Vérifions si l'image mise à jour est correctement enregistrée
image.Save(psd2OutputPath, new PsdOptions(image));
image.Save(png2OutputPath, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
}
}
Voir également
- interface IPlacedLayerResource
- espace de noms Aspose.PSD.FileFormats.Psd.Layers.LayerResources
- Assemblée Aspose.PSD