SVG (Scalable Vector Graphics) یک فرمت تصویر برداری مبتنی بر XML برای تعریف گرافیک دو بعدی با پشتیبانی از انیمیشن است. این تصاویر به دلیل تراکم پیکسلی بالا عمدتاً در وب استفاده می شوند. از سوی دیگر، ویژگی های غنی نیز اندازه تصاویر SVG را در مقایسه با تصویر PNG با ابعاد یکسان افزایش می دهد. چنین تفاوت هایی به توسعه دهندگان اجازه می دهد تا به فکر تبدیل تصاویر از یک فرمت به فرمت دیگر باشند. در این مقاله نحوه تبدیل وکتورهای SVG به تصاویر PNG در Java بحث می شود.
Java API برای تبدیل تصاویر
GroupDocs.Conversion سند و [API تبدیل تصویر برای توسعه دهندگان Java را به نمایش می گذارد2. از لیست بزرگی از فرمت های تصاویر برای تبدیل از یک فرمت به فرمت دیگر پشتیبانی می کند. علاوه بر این، نتایج تبدیل را نیز می توان با استفاده از گزینه های پیشرفته موجود سفارشی کرد. من از این API، GroupDocs.Conversion for Java برای تبدیل گرافیک برداری SVG به فرمت تصویر PNG استفاده خواهم کرد.
دانلود یا پیکربندی کنید
میتوانید فایل JAR را از بخش دانلودها دانلود کنید، یا فقط تنظیمات مخزن و وابستگی را برای pom.xml برنامههای Java مبتنی بر maven خود دریافت کنید.
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-conversion</artifactId>
<version>22.3</version>
</dependency>
تبدیل تصویر SVG به PNG در جاوا
بدون اتلاف وقت، اجازه دهید با تبدیل اولیه با پیکربندی پیش فرض شروع کنیم. مراحل زیر نحوه تبدیل فایل گرافیکی برداری SVG را به تصویر PNG در Java نشان می دهد.
- گرافیک PNG را با استفاده از کلاس Converter بارگیری کنید.
- گزینه های تبدیل تصویر را آماده کنید.
- نوع فایل تبدیل را به صورت PNG تنظیم کنید.
- متد convert() را فراخوانی کنید تا فایل SVG بارگذاری شده به تصویر PNG تبدیل شود.
کد منبع Java زیر SVG را به یک تصویر PNG تبدیل می کند.
// نحوه تبدیل فایل SVG به فرمت PNG در Java با استفاده از گزینه های پیش فرض
Converter converter = new Converter("path/vector-graphics.svg");
ImageConvertOptions options = new ImageConvertOptions();
options.setFormat(ImageFileType.Png);
converter.convert("path/svg-to-png.png", options);
تصویر SVG به PNG با استفاده از گزینه های پیشرفته در جاوا
بسیاری از گزینه های سفارشی سازی را می توان در خروجی PNG در حین تبدیل از SVG اعمال کرد تا نتیجه دلخواه را به دست آورد. موارد زیر برخی از ویژگی هایی است که می توان هنگام تبدیل SVG به PNG تنظیم کرد:
گزینه سفارشی سازی | روش |
---|---|
روشنایی | setBrightness(int value) |
Contrast | setContrast(int value) |
حالت تلنگر (افقی / عمودی) | setFlipMode(مقدار ImageFlipModes) |
Gamma | setGamma(مقدار شناور) |
مقیاس خاکستری | مجموعه مقیاس خاکستری (مقدار بولی) |
ارتفاع | setHeight(int value) |
زوایای چرخش | setRotateAngle(int value) |
Watermark | setWatermark(مقدار WatermarkTextOptions) |
Width | setWidth(int value) |
مراحل زیر نحوه اعمال تغییرات در حین تبدیل یک گرافیک SVG به یک تصویر PNG در Java را نشان می دهد.
- گرافیک SVG را با استفاده از کلاس Converter بارگیری کنید.
- گزینه های تبدیل تصویر را آماده کنید.
- نوع فایل تبدیل را به صورت PNG تنظیم کنید.
- سایر خصوصیات مربوطه را با استفاده از روش های تنظیم کننده مربوطه تنظیم کنید و مقادیر آنها را بر اساس آن تنظیم کنید.
- با استفاده از متد convert() با گزینه های آماده به تصویر PNG تبدیل کنید.
می توانید هر یک از این افکت ها را یا به صورت ترکیبی برای دریافت خروجی PNG مورد نیاز اعمال کنید. کد منبع زیر سفارشی سازی را برای تصویر PNG اعمال می کند در حالی که تبدیل SVG به PNG در جاوا.
// با استفاده از سفارشی سازی های مختلف، فایل SVG را به فرمت PNG در Java تبدیل کنید
Converter converter = new Converter("path/vector-graphics.svg");
ImageConvertOptions options = new ImageConvertOptions();
options.setFormat(ImageFileType.Png); // Set output format as PNG
options.setFlipMode(ImageFlipModes.FlipY); // Flip Vertically or Horizontally
options.setBrightness(50); // Set Brightness
options.setContrast(50); // Set Contrast
options.setGamma(0.5F); // Set Gamma
options.setGrayscale(true); // Set Grayscale
options.setRotateAngle(45); // Set Rotation
// هنگامی که از فرمت SVG تبدیل می شود، واترمارک را به PNG اضافه کنید
WatermarkTextOptions watermark = new WatermarkTextOptions("Watermark");
watermark.setColor(Color.BLUE);
watermark.setBackground(false);
watermark.setRotationAngle(-45);
watermark.setTop(50);
watermark.setLeft(50);
watermark.setTransparency(0.2);
watermark.setWidth(450);
watermark.setHeight(450);
options.setWatermark(watermark);
converter.convert("path/svg-to-png-customized.png", options);
مجوز API رایگان دریافت کنید
برای استفاده از API بدون محدودیت ارزیابی، می توانید یک مجوز موقت رایگان دریافت کنید.
نتیجه
به طور خلاصه، ما یاد گرفتیم که فایل های SVG را به فرمت PNG در برنامه های Java تبدیل کنیم. ما بیشتر یاد گرفتیم که چگونه میتوانیم فایلهای PNG را هنگام تبدیل از فرمت SVG بچرخانیم، ورق بزنیم یا واترمارک کنیم. علاوه بر این، نحوه تنظیم گزینههای روشنایی، گاما و مقیاس خاکستری را مورد بحث قرار دادیم.
می توانید سعی کنید برنامه Java تبدیل تصویر خود را بسازید. ممکن است در مورد APIها از اسناد برای خودکارسازی تبدیل سند و تصویر بیشتر بیاموزید.
ساده ترین راه این است که نمونه های GitHub را تجربه کنید. برای هرگونه سوال از طریق [فروم 7 با ما تماس بگیرید.