Class VsmsResource
VsmsResource class
Class VsmsResource. Questa risorsa contiene informazioni sulla maschera di livello vettoriale
public class VsmsResource : VectorPathDataResource
Costruttori
Nome | Descrizione |
---|
VsmsResource() | Inizializza una nuova istanza diVsmsResource classe. |
VsmsResource(byte[]) | Inizializza una nuova istanza diVsmsResource classe. |
Proprietà
Nome | Descrizione |
---|
IsDisabled { get; set; } | Ottiene o imposta un valore che indica se questa istanza è disabilitata. |
IsInverted { get; set; } | Ottiene o imposta un valore che indica se questa istanza è invertita. |
IsNotLinked { get; set; } | Ottiene o imposta un valore che indica se questa istanza non è collegata. |
override Key { get; } | Ottiene la chiave della risorsa del livello. |
override Length { get; } | Ottiene la lunghezza della risorsa del livello in byte. |
Paths { get; set; } | Ottiene o imposta i record del percorso. |
override PsdVersion { get; } | Ottiene la versione psd. |
override Signature { get; } | Ottiene la firma. |
Version { get; set; } | Ottiene o imposta la versione. |
Metodi
Nome | Descrizione |
---|
override Save(StreamContainer, int) | Salva la risorsa nel contenitore del flusso specificato. |
override ToString() | Restituisce aString che rappresenta questa istanza. |
Campi
Nome | Descrizione |
---|
const TypeToolKey | Il tasto informazioni dello strumento testo. |
Esempi
Nell’esempio seguente viene illustrato il supporto del caricamento delle risorse VsmsResource. Come funziona la modifica dei percorsi.
[C#]
[Test]
public void TestPsdNet140()
{
// Supporto risorsa Vsms
string sourceFileName = "EmptyRectangle.psd";
string exportPath = "EmptyRectangle_changed.psd";
var im = (PsdImage)Image.Load(sourceFileName);
using (im)
{
var resource = GetVsmsResource(im);
// Lettura
if (resource.IsDisabled != false ||
resource.IsInverted != false ||
resource.IsNotLinked != false ||
resource.Paths.Length != 7 ||
resource.Paths[0].Type != VectorPathType.PathFillRuleRecord ||
resource.Paths[1].Type != VectorPathType.InitialFillRuleRecord ||
resource.Paths[2].Type != VectorPathType.ClosedSubpathLengthRecord ||
resource.Paths[3].Type != VectorPathType.ClosedSubpathBezierKnotUnlinked ||
resource.Paths[4].Type != VectorPathType.ClosedSubpathBezierKnotUnlinked ||
resource.Paths[5].Type != VectorPathType.ClosedSubpathBezierKnotUnlinked ||
resource.Paths[6].Type != VectorPathType.ClosedSubpathBezierKnotUnlinked)
{
throw new Exception("VsmsResource was read wrong");
}
var pathFillRule = (PathFillRuleRecord)resource.Paths[0];
var initialFillRule = (InitialFillRuleRecord)resource.Paths[1];
var subpathLength = (LengthRecord)resource.Paths[2];
// La regola di riempimento del percorso non contiene informazioni aggiuntive
if (pathFillRule.Type != VectorPathType.PathFillRuleRecord ||
initialFillRule.Type != VectorPathType.InitialFillRuleRecord ||
initialFillRule.IsFillStartsWithAllPixels != false ||
subpathLength.Type != VectorPathType.ClosedSubpathLengthRecord ||
subpathLength.IsClosed != true ||
subpathLength.IsOpen != false)
{
throw new Exception("VsmsResource paths were read wrong");
}
// La modifica
resource.IsDisabled = true;
resource.IsInverted = true;
resource.IsNotLinked = true;
var bezierKnot = (BezierKnotRecord)resource.Paths[3];
bezierKnot.Points[0] = new Point(0, 0);
bezierKnot = (BezierKnotRecord)resource.Paths[4];
bezierKnot.Points[0] = new Point(8039798, 10905191);
initialFillRule.IsFillStartsWithAllPixels = true;
subpathLength.IsClosed = false;
im.Save(exportPath);
}
}
private VsmsResource GetVsmsResource(PsdImage image)
{
var layer = image.Layers[1];
VsmsResource resource = null;
var resources = layer.Resources;
for (int i = 0; i < resources.Length; i++)
{
if (resources[i] is VsmsResource)
{
resource = (VsmsResource)resources[i];
break;
}
}
if (resource == null)
{
throw new Exception("VsmsResource not found");
}
return resource;
}
Guarda anche