ผสาน SVG ผ่าน Java
สร้างแอป Java ของคุณเองเพื่อรวมไฟล์ SVG โดยใช้ API ฝั่งเซิร์ฟเวอร์
วิธีรวมไฟล์ SVG โดยใช้ Java
หากคุณต้องการปล่อยให้ความคิดสร้างสรรค์ของคุณโลดแล่น นี่คือเวลาที่จะใช้ภาพต่อกัน ฟังก์ชั่นนี้จะช่วยให้คุณสามารถรวมภาพถ่ายและภาพได้ แม้ว่าไฟล์ต้นฉบับจะมีรูปแบบที่แตกต่างกันก็ตาม วิธีที่ยอดเยี่ยมในการดึงดูดความสนใจมาที่ผลงานของคุณคือการใช้วอลเปเปอร์รูปภาพที่มีรูปภาพหรือลวดลายซ้ำๆ ในกรณีนี้ สามารถรวมรูปภาพได้ทั้งในแนวนอนและแนวตั้ง ในกรณีที่คุณต้องการสาธิตผลลัพธ์ของการประมวลผลไฟล์ คุณสามารถรวมสองภาพได้อย่างง่ายดาย: ก่อนและหลังการใช้เอฟเฟ็กต์ภาพถ่าย เพื่อรวมไฟล์ SVG เราจะใช้ Aspose.Imaging for Java API ซึ่งเป็น API การแปลงและการแปลงรูปภาพที่มีคุณลักษณะหลากหลาย มีประสิทธิภาพ และใช้งานง่ายสำหรับแพลตฟอร์ม Java คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดได้โดยตรงจาก Maven และติดตั้งภายใน Maven ของคุณ - ตามโครงการโดยเพิ่มการกำหนดค่าต่อไปนี้ใน pom.xml
Repository
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Dependency
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging</artifactId>
<version>version of aspose-imaging API</version>
<classifier>jdk16</classifier>
</dependency>
ขั้นตอนในการผสาน SVGs ผ่าน Java
คุณต้องมี aspose-imaging-version-jdk16.jar เพื่อลองใช้เวิร์กโฟลว์ต่อไปนี้ในสภาพแวดล้อมของคุณเอง
- โหลดไฟล์ SVG ด้วยวิธี Image.load
- การรวมภาพเข้าด้วยกันใหม่
- บันทึกภาพที่ครอบตัดลงแผ่นดิสก์ในรูปแบบที่รองรับโดย Aspose.Imaging
ความต้องการของระบบ
Aspose.Imaging สำหรับ Java ได้รับการสนับสนุนในระบบปฏิบัติการหลักทั้งหมด เพียงตรวจสอบให้แน่ใจว่าคุณมีข้อกำหนดเบื้องต้นดังต่อไปนี้
- ติดตั้ง JDK 1.6 หรือสูงกว่า
รวมภาพ SVG - Java
import com.aspose.imaging.Image; | |
import com.aspose.imaging.RasterImage; | |
import com.aspose.imaging.fileformats.tiff.TiffFrame; | |
import com.aspose.imaging.fileformats.tiff.TiffImage; | |
import com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat; | |
import com.aspose.imaging.imageoptions.PdfOptions; | |
import com.aspose.imaging.imageoptions.PngOptions; | |
import com.aspose.imaging.imageoptions.TiffOptions; | |
import java.io.File; | |
import java.io.FilenameFilter; | |
import java.util.HashMap; | |
import java.util.Map; | |
String TestDirectory = "<some directory>\\Many2One\\"; | |
HashMap<String, Image> images = new HashMap<String, Image>(); | |
try | |
{ | |
String outputPath = TestDirectory + "output\\"; | |
File dir = new File(outputPath); | |
assert dir.exists() || dir.mkdirs(); | |
int maxWidth = 0; | |
int maxHeight = 0; | |
// Source file mask, could vary depending on image format (i.e. *.emf, *.wmf, *.svg, *.odg, etc) | |
final String fileMask = ".emf"; | |
File[] files = new File(TestDirectory).listFiles(new FilenameFilter() | |
{ | |
@Override | |
public boolean accept(File dir, String name) | |
{ | |
return name.endsWith(fileMask); | |
} | |
}); | |
if (files == null) | |
return; | |
for (File fileName : files) | |
{ | |
try (Image image = Image.load(fileName.getAbsolutePath())) | |
{ | |
String outputFileName = outputPath + fileName.getName() + ".png"; | |
// Save PNG image | |
image.save(outputFileName, new PngOptions()); | |
Image rasterImage = Image.load(outputFileName); | |
if (rasterImage.getWidth() > maxWidth) | |
{ | |
maxWidth = rasterImage.getWidth(); | |
} | |
if (rasterImage.getHeight() > maxHeight) | |
{ | |
maxHeight = rasterImage.getHeight(); | |
} | |
images.put(outputFileName, rasterImage); | |
} | |
} | |
if (images.isEmpty()) | |
{ | |
return; | |
} | |
String outputPath1 = outputPath + "multiframe.tiff"; | |
String outputPath2 = outputPath + "multipage.pdf"; | |
final Image[] imageArray = images.values().toArray(new Image[0]); | |
try (TiffImage tiffImage = new TiffImage(new TiffFrame((RasterImage) imageArray[0]))) | |
{ | |
for (int i = 1; i < imageArray.length; i++) | |
{ | |
tiffImage.addPage((RasterImage)imageArray[i]); | |
} | |
// Save as muti frame tiff | |
tiffImage.save(outputPath1, new TiffOptions(TiffExpectedFormat.TiffJpegRgb)); | |
// Worry about Pdf ? That's it! | |
tiffImage.save(outputPath2, new PdfOptions()); | |
} | |
} | |
finally | |
{ | |
for (Map.Entry<String, Image> entry : images.entrySet()) | |
{ | |
entry.getValue().close(); | |
new File(entry.getKey()).delete(); | |
} | |
images.clear(); | |
} |
เกี่ยวกับ Aspose.Imaging สำหรับ Java API
Aspose.Imaging API เป็นโซลูชันการประมวลผลรูปภาพเพื่อสร้าง แก้ไข วาดหรือแปลงรูปภาพ (ภาพถ่าย) ภายในแอปพลิเคชัน นำเสนอ: การประมวลผลภาพข้ามแพลตฟอร์ม รวมถึงแต่ไม่จำกัดเพียงการแปลงระหว่างรูปแบบภาพต่างๆ (รวมถึงการประมวลผลภาพแบบหลายหน้าหรือหลายเฟรมแบบเดียวกัน) การปรับเปลี่ยน เช่น การวาด การทำงานกับภาพกราฟิกดั้งเดิม การแปลงภาพ (ปรับขนาด ครอบตัด พลิกและหมุน , ไบนารี, ระดับสีเทา, ปรับ), คุณสมบัติการจัดการภาพขั้นสูง (การกรอง, การแยกสี, การปิดบัง, การเดสก์) และกลยุทธ์การปรับหน่วยความจำให้เหมาะสม เป็นไลบรารีแบบสแตนด์อโลนและไม่ขึ้นกับซอฟต์แวร์ใด ๆ สำหรับการทำงานของรูปภาพ คุณสามารถเพิ่มคุณสมบัติการแปลงรูปภาพประสิทธิภาพสูงด้วย API ดั้งเดิมภายในโปรเจ็กต์ได้อย่างง่ายดาย สิ่งเหล่านี้เป็น API ภายในองค์กรที่เป็นส่วนตัว 100% และอิมเมจได้รับการประมวลผลที่เซิร์ฟเวอร์ของคุณผสาน SVGs ผ่านแอปออนไลน์
รวมเอกสาร SVG โดยไปที่ เว็บไซต์ Live Demos การสาธิตสดมีประโยชน์ดังต่อไปนี้
SVG คืออะไร SVG รูปแบบไฟล์
ไฟล์ SVG เป็นไฟล์กราฟิกแบบเวกเตอร์ที่ปรับขนาดได้ซึ่งใช้รูปแบบข้อความแบบ XML เพื่ออธิบายลักษณะที่ปรากฏของรูปภาพ คำว่า Scalable หมายถึงความจริงที่ว่า SVG สามารถปรับขนาดเป็นขนาดต่างๆ ได้โดยไม่สูญเสียคุณภาพใดๆ คำอธิบายตามข้อความของไฟล์ดังกล่าวทำให้ไม่ขึ้นกับความละเอียด เป็นรูปแบบหนึ่งที่ใช้กันมากที่สุดในการสร้างเว็บไซต์และพิมพ์กราฟิกเพื่อให้ได้ความสามารถในการปรับขนาด รูปแบบสามารถใช้ได้กับกราฟิกสองมิติเท่านั้น ไฟล์ SVG สามารถดู/เปิดได้ในเบราว์เซอร์สมัยใหม่เกือบทั้งหมด รวมถึง Chrome, Internet Explorer, Firefox และ Safari
อ่านเพิ่มเติมรูปแบบการผสานอื่น ๆ ที่รองรับ
การใช้ Java สามารถผสานรูปแบบต่างๆ เข้าด้วยกันได้อย่างง่ายดาย