Как да използвате Warp в Aspose.PSD
Част 1 – Рендиране на файл PSD с ефект Warp
Photoshop запазва изображението след прилагане на ефекта Warp. Нашата библиотека може да възпроизведе или пренаправи изображението с ефекта Warp. За да активирате тази функция, просто задайте флага AllowWarpRepaint в настройките при отварянето на 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 | |
}); | |
} |
Резултат:
Освен да рендира ефекта Warp за SmartLayers, нашата библиотека също поддържа Warp за TextLayers. Кодът за имплементация остава идентичен, като единствената разлика е в името на файла.
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 | |
}); | |
} |
Резултат:
*! Забележка: ** В момента нашата библиотека поддържа рендиране на и Custom Warp (където потребителите манипулират мрежовите точки) и всички стандартни типове Warp.
-
- В момента библиотеката ни поддържа Custom Warp със стандартната мрежа и активно работим по разширяване на поддръжката си, за да включим всички типове мрежи в близко бъдеще.
Част 2 – Модификация на ефекта Warp
Нашата библиотека ви позволява не само да рендирате, но и да модифицирате (добавите) ефекта Warp. Тези модификации се извършват чрез функциите на WarpParams класа.
Функционалност | Описание |
---|---|
Bounds | Връща границите на изкривеното изображение. |
MeshPoints | Масив от точки, като всяка точка представлява връх на мрежата за изкривяване. |
Value | Стойността на ефекта Warp за не-Custom warp ефекти. |
WarpRotates | Индицира насоката на не-Custom warp ефекти. |
WarpStyles | Индицира типа на ефекта Warp. |
Примерът по-долу демонстрира как да определите типа на ефекта Warp за Smart Layer и да промените типа и интензивността на изкривяването за ефекта.
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 | |
}); | |
} |
Резултат:
Част 3 – Добавяне на ефекта Warp
Примерът по-долу демонстрира как да добавите стандартен Warp ефект към 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 | |
}); | |
} |
Резултат:
Примерът по-долу демонстрира как да добавите Custom Warp ефект към 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 | |
}); | |
} |
Резултат:
Примерът по-долу демонстрира как да добавите ефекта Warp към Text Layer. ! Забележка: Според стандартите на Photoshop, ефектът Warp за Text Layers обикновено е ограничен до стандартния тип. Въпреки това, нашата библиотека поддържа използването на два типа Warp ефекти. Моля, обърнете внимание, че такива файлове може да не са напълно съвместими с 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 | |
}); | |
} |
Резултат:
Продължаваме да усъвършенстваме и разширяме възможностите на нашия Warp ефект, фокусирайки се върху подобряването на скоростта, качеството и поддържаната функционалност. Бъдете в крак с последните разработки чрез нашите месечни актуализации. Вашият Aspose.PSD екип