วิธีเพิ่มรูปแบบเลเยอร์ Stroke ใน Java

การแนะนำ

การเพิ่มรูปแบบเลเยอร์สโตรกให้กับรูปภาพใน Java อาจฟังดูเป็นงานที่น่ากังวล แต่ด้วย Aspose.PSD สำหรับ Java มันง่ายกว่าที่คุณคิด ไม่ว่าคุณจะออกแบบกราฟิกหรือใช้งานแอพพลิเคชั่นแก้ไขภาพ คู่มือนี้จะแนะนำคุณตลอดกระบวนการทีละขั้นตอน พร้อมที่จะเริ่มต้นหรือยัง? มาดำน้ำกันเถอะ!

ข้อกำหนดเบื้องต้น

ก่อนที่จะเริ่ม คุณจะต้องมีสิ่งต่อไปนี้:

  • Java Development Kit (JDK): ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง JDK บนระบบของคุณแล้ว
  • Aspose.PSD สำหรับ Java: ดาวน์โหลดไลบรารีจากที่นี่ และรวมไว้ในโครงการของคุณ
  • IDE: ใช้ Integrated Development Environment (IDE) ที่คุณชื่นชอบ เช่น IntelliJ IDEA หรือ Eclipse

แพ็คเกจนำเข้า

ก่อนอื่น คุณต้องนำเข้าแพ็คเกจที่จำเป็นไปยังโปรเจ็กต์ Java ของคุณ แพ็คเกจเหล่านี้จำเป็นสำหรับการทำงานกับ Aspose.PSD

import com.aspose.psd.Color;
import com.aspose.psd.Image;
import com.aspose.psd.Rectangle;
import com.aspose.psd.examples.Utils.Assert;
import com.aspose.psd.examples.Utils.Utils;
import com.aspose.psd.fileformats.psd.PsdImage;
import com.aspose.psd.fileformats.psd.layers.BlendMode;
import com.aspose.psd.fileformats.psd.layers.fillsettings.FillType;
import com.aspose.psd.fileformats.psd.layers.fillsettings.PatternFillSettings;
import com.aspose.psd.fileformats.psd.layers.layereffects.StrokeEffect;
import com.aspose.psd.fileformats.psd.layers.layerresources.PattResource;
import com.aspose.psd.imageloadoptions.PsdLoadOptions;
import java.util.UUID;

ขั้นตอนที่ 1: โหลดไฟล์ PSD

ขั้นตอนแรกในการเพิ่มรูปแบบเลเยอร์สโตรคคือการโหลดไฟล์ PSD ที่คุณต้องการแก้ไข

String dataDir = "Your Document Directory";
String sourceFileName = dataDir + "Stroke.psd";
PsdLoadOptions loadOptions = new PsdLoadOptions();
loadOptions.setLoadEffectsResource(true);
PsdImage im = (PsdImage)Image.load(sourceFileName, loadOptions);

เมื่อโหลดไฟล์ PSD คุณจะสามารถเข้าถึงและจัดการเลเยอร์และเอฟเฟ็กต์ของไฟล์ได้

ขั้นตอนที่ 2: เตรียมข้อมูลรูปแบบใหม่

ถัดไป คุณต้องเตรียมข้อมูลรูปแบบใหม่ที่คุณจะนำไปใช้กับเลเยอร์เส้นโครงร่าง

int[] newPattern = new int[]
{
    Color.getAqua().toArgb(), Color.getRed().toArgb(), Color.getRed().toArgb(), Color.getAqua().toArgb(),
    Color.getAqua().toArgb(), Color.getWhite().toArgb(), Color.getWhite().toArgb(), Color.getAqua().toArgb(),
    Color.getAqua().toArgb(), Color.getWhite().toArgb(), Color.getWhite().toArgb(), Color.getAqua().toArgb(),
    Color.getAqua().toArgb(), Color.getRed().toArgb(), Color.getRed().toArgb(), Color.getAqua().toArgb(),
};
Rectangle newPatternBounds = new Rectangle(0, 0, 4, 4);
UUID guid = UUID.randomUUID();

ข้อมูลรูปแบบนี้จะถูกนำมาใช้เพื่อสร้างเอฟเฟกต์เส้นโครงร่างใหม่

ขั้นตอนที่ 3: เข้าถึงเอฟเฟกต์ Stroke

หากต้องการแก้ไขเอฟเฟกต์เส้นโครงร่าง คุณต้องเข้าถึงเลเยอร์ที่ต้องการและตัวเลือกการผสม

StrokeEffect patternStroke = (StrokeEffect)im.getLayers()[3].getBlendingOptions().getEffects()[0];
Assert.areEqual(BlendMode.Normal, patternStroke.getBlendMode());
Assert.areEqual(255, patternStroke.getOpacity());
Assert.areEqual(true, patternStroke.isVisible());
PatternFillSettings fillSettings = (PatternFillSettings)patternStroke.getFillSettings();
Assert.areEqual(FillType.Pattern, fillSettings.getFillType());

เพื่อให้แน่ใจว่าคุณกำลังทำงานกับเลเยอร์และเอฟเฟกต์ที่ถูกต้อง

ขั้นตอนที่ 4: แก้ไขเอฟเฟ็กต์โรคหลอดเลือดสมอง

ตอนนี้ เรามาแก้ไขเอฟเฟกต์เส้นโครงร่างด้วยข้อมูลรูปแบบใหม่กัน

อัปเดตคุณสมบัติเอฟเฟกต์จังหวะ

patternStroke.setOpacity((byte)127);
patternStroke.setBlendMode(BlendMode.Color);

อัปเดตทรัพยากรรูปแบบ

PattResource resource;
for (int i = 0; i < im.getGlobalLayerResources().length; i++)
{
    if (im.getGlobalLayerResources()[i] instanceof PattResource)
    {
        resource = (PattResource)im.getGlobalLayerResources()[i];
        resource.setPatternId(guid.toString());
        resource.setName("$$/Presets/Patterns/HorizontalLine1=Horizontal Line 9\0");
        resource.setPattern(newPattern, newPatternBounds);
    }
}

ข้อมูลโค้ดนี้จะอัปเดตทรัพยากรรูปแบบด้วยข้อมูลรูปแบบใหม่

ขั้นตอนที่ 5: ใช้รูปแบบใหม่

สุดท้าย ใช้รูปแบบใหม่กับเอฟเฟกต์เส้นโครงร่างและบันทึกการเปลี่ยนแปลง

((PatternFillSettings)patternStroke.getFillSettings()).setPatternName("$$/Presets/Patterns/HorizontalLine1=Horizontal Line 9\0");
((PatternFillSettings)patternStroke.getFillSettings()).setPatternId(guid.toString() + "\0");
im.save(exportPath);

เพื่อให้แน่ใจว่ารูปแบบใหม่จะถูกนำไปใช้อย่างถูกต้อง และไฟล์จะถูกบันทึกพร้อมกับการเปลี่ยนแปลง

ขั้นตอนที่ 6: ตรวจสอบการเปลี่ยนแปลง

เพื่อให้แน่ใจว่าทุกอย่างทำงานได้อย่างถูกต้อง ให้โหลดไฟล์อีกครั้งและตรวจสอบการเปลี่ยนแปลง

PsdImage img = (PsdImage)Image.load(sourceFileName, loadOptions);
StrokeEffect patternStrokeEffect = (StrokeEffect)img.getLayers()[3].getBlendingOptions().getEffects()[0];
PattResource resource1 = null;
for (int i = 0; i < img.getGlobalLayerResources().length; i++)
{
    if (img.getGlobalLayerResources()[i] instanceof PattResource)
    {
        resource1 = (PattResource)img.getGlobalLayerResources()[i];
    }
}
try
{
    Assert.areEqual(newPattern, resource1.getPatternData());
    Assert.areEqual(newPatternBounds, new Rectangle(0, 0, resource1.getWidth(), resource1.getHeight()));
    Assert.areEqual(guid.toString(), resource1.getPatternId());
    Assert.areEqual(BlendMode.Color, patternStrokeEffect.getBlendMode());
    Assert.areEqual(127, patternStrokeEffect.getOpacity());
    Assert.areEqual(true, patternStrokeEffect.isVisible());
    PatternFillSettings fillSettings1 = (PatternFillSettings)patternStrokeEffect.getFillSettings();
    Assert.areEqual(FillType.Pattern, fillSettings1.getFillType());
}
catch (Exception e)
{
    System.out.println(e.getMessage());
}

ขั้นตอนนี้จะตรวจสอบว่าข้อมูลรูปแบบถูกนำไปใช้กับเอฟเฟกต์เส้นโครงร่างอย่างถูกต้อง

บทสรุป

และคุณก็ได้แล้ว! คุณได้เพิ่มรูปแบบเลเยอร์สโตรกลงในไฟล์ PSD โดยใช้ Aspose.PSD สำหรับ Java สำเร็จแล้ว เมื่อทำตามขั้นตอนเหล่านี้ คุณจะสามารถปรับแต่งและปรับปรุงรูปภาพของคุณได้อย่างง่ายดาย ขอให้มีความสุขในการเขียนโค้ด!

คำถามที่พบบ่อย

Aspose.PSD สำหรับ Java คืออะไร

Aspose.PSD สำหรับ Java เป็นไลบรารีที่ช่วยให้นักพัฒนาสามารถสร้าง แก้ไข และแปลงไฟล์ PSD (เอกสาร Photoshop) โดยทางโปรแกรม

ฉันสามารถใช้ Aspose.PSD สำหรับ Java ในโปรเจ็กต์เชิงพาณิชย์ได้หรือไม่

ใช่ คุณสามารถใช้มันในโครงการเชิงพาณิชย์ได้ คุณสามารถซื้อใบอนุญาตได้จากที่นี่.

มีการทดลองใช้ฟรีสำหรับ Aspose.PSD สำหรับ Java หรือไม่

ใช่ คุณสามารถดาวน์โหลดเวอร์ชันทดลองใช้ฟรีได้จากที่นี่.

ฉันจะรับการสนับสนุน Aspose.PSD สำหรับ Java ได้อย่างไร

คุณสามารถรับการสนับสนุนจากฟอรัมชุมชน Asposeที่นี่.

ความต้องการของระบบสำหรับ Aspose.PSD สำหรับ Java คืออะไร

คุณต้องติดตั้ง JDK และ IDE เพื่อการพัฒนา ไลบรารีรองรับระบบปฏิบัติการหลายระบบรวมถึง Windows, Linux และ macOS