Cómo utilizar Warp en Aspose.PSD
Parte 1 – Renderizar un archivo PSD con el efecto Warp
Photoshop guarda la imagen renderizada después de aplicar el efecto Warp. Nuestra biblioteca puede reproducir o volver a renderizar la imagen con el efecto Warp. Para habilitar esta función, simplemente configure el flag AllowWarpRepaint en la configuración al abrir el archivo PSD.
string sourceFile = "warp_flag.psd"; | |
string outputFile = "total.png"; | |
using (var psdImage = (PsdImage)Image.Load(sourceFile, new PsdLoadOptions() { AllowWarpRepaint = true, LoadEffectsResource = true })) | |
{ | |
psdImage.Save(outputFile, new PngOptions | |
{ | |
ColorType = PngColorType.TruecolorWithAlpha | |
}); | |
} |
Resultado:
Además de renderizar el efecto Warp para SmartLayers, nuestra biblioteca también admite Warp para TextLayers. El código de implementación sigue siendo idéntico, con la única diferencia en el nombre de archivo.
string sourceFile = "warp_text_wave.psd"; | |
string outputFile = "total.png"; | |
using (var psdImage = (PsdImage)Image.Load(sourceFile, new PsdLoadOptions() { AllowWarpRepaint = true, LoadEffectsResource = true })) | |
{ | |
psdImage.Save(outputFile, new PngOptions | |
{ | |
ColorType = PngColorType.TruecolorWithAlpha | |
}); | |
} |
Resultado:
! Nota: Actualmente, nuestra biblioteca soporta renderizar tanto Warp personalizado (donde los usuarios manipulan puntos de malla) como todos los tipos estándar de Warp.
Parte 2 – Modificar el efecto Warp
Nuestra biblioteca le permite no solo renderizar, sino también modificar (agregar) el efecto Warp. Estas modificaciones se facilitan a través de las características de la clase WarpParams.
Característica | Descripción |
---|---|
Límites | Devuelve los límites de la imagen deformada. |
MeshPoints | Una matriz de puntos, donde cada punto representa un vértice de la malla de deformación. |
Valor | El valor del efecto warp para efectos de deformación no personalizados. |
WarpRotates | Una enumeración que define la dirección de efectos de deformación no personalizados. |
WarpStyles | Una enumeración que define el tipo de efecto Warp. |
El siguiente ejemplo de código demuestra cómo determinar el tipo de efecto Warp para una Smart Layer y ajustar el tipo e intensidad de distorsión para el efecto.
string sourceFile = "warp_flag.psd"; | |
string outputFile = "total.png"; | |
using (var psdImage = (PsdImage)Image.Load(sourceFile, new PsdLoadOptions() { AllowWarpRepaint = true, LoadEffectsResource = true })) | |
{ | |
var smartLayer = (SmartObjectLayer)psdImage.Layers[0]; | |
WarpParams warpParams = smartLayer.WarpParams;]; | |
WarpParams warpParams = smartLayer.WarpParams; | |
if (warpParams.Style == WarpStyles.Flag) | |
{ | |
warpParams.Style = WarpStyles.Wave; | |
warpParams.Value = 20; | |
} | |
psdImage.Save(outputFile, new PngOptions | |
{ | |
ColorType = PngColorType.TruecolorWithAlpha | |
}); | |
} |
Resultado:
Parte 3 – Agregar el efecto Warp
El siguiente ejemplo de código muestra cómo agregar un efecto Warp estándar a una Smart Layer.
string sourceFile = "smart_object.psd"; | |
string outputFile = "total.png"; | |
using (var psdImage = (PsdImage)Image.Load(sourceFile, new PsdLoadOptions() { AllowWarpRepaint = true, LoadEffectsResource = true })) | |
{ | |
// The smart object without Warp effect | |
var smartLayer = (SmartObjectLayer)psdImage.Layers[0]; | |
// It gets structure for warp effect | |
WarpParams warpParams = smartLayer.WarpParams; | |
// It sets parameters for warp effect | |
warpParams.Style = WarpStyles.Arc; | |
warpParams.Value = 10; | |
psdImage.Save(outputFile, new PngOptions | |
{ | |
ColorType = PngColorType.TruecolorWithAlpha | |
}); | |
} |
Resultado:
El siguiente ejemplo de código muestra cómo agregar un efecto Warp personalizado a una Smart Layer.
string sourceFile = "smart_object.psd"; | |
string outputFile = "total.png"; | |
using (var psdImage = (PsdImage)Image.Load(sourceFile, new PsdLoadOptions() { AllowWarpRepaint = true, LoadEffectsResource = true })) | |
{ | |
// The smart object without Warp effect | |
var smartLayer = (SmartObjectLayer)psdImage.Layers[0]; | |
// It gets structure for warp effect | |
WarpParams warpParams = smartLayer.WarpParams; | |
// It sets parameters for warp effect | |
warpParams.Style = WarpStyles.Custom; | |
warpParams.MeshPoints[2].Y += 70; | |
psdImage.Save(outputFile, new PngOptions | |
{ | |
ColorType = PngColorType.TruecolorWithAlpha | |
}); | |
} |
Resultado:
El siguiente ejemplo de código muestra cómo agregar un efecto Warp a una Text Layer. ! Nota: Según los estándares de Photoshop, el efecto Warp para Text Layers suele estar limitado al tipo estándar. Sin embargo, nuestra biblioteca admite el uso de dos tipos de efectos Warp. Tenga en cuenta que dichos archivos pueden no ser completamente compatibles con Photoshop.
string sourceFile = "smart_object.psd"; | |
string outputFile = "total.png"; | |
using (var psdImage = (PsdImage)Image.Load(sourceFile, new PsdLoadOptions() { AllowWarpRepaint = true, LoadEffectsResource = true })) | |
{ | |
// The smart object without Warp effect | |
var smartLayer = (SmartObjectLayer)psdImage.Layers[0]; | |
// It gets structure for warp effect | |
WarpParams warpParams = smartLayer.WarpParams; | |
// It sets parameters for warp effect | |
warpParams.Style = WarpStyles.Custom; | |
warpParams.MeshPoints[2].Y += 70; | |
psdImage.Save(outputFile, new PngOptions | |
{ | |
ColorType = PngColorType.TruecolorWithAlpha | |
}); | |
} |
Resultado:
Continuamos mejorando y expandiendo las capacidades de nuestro efecto Warp, centrándonos en mejorar su velocidad, calidad y funcionalidad soportada. Manténgase actualizado con nuestros lanzamientos mensuales para conocer las últimas novedades. Su equipo de Aspose.PSD