<p>Конвертер SVG в PNG – это инструмент, который позволяет преобразовывать файлы векторной графики SVG в растровый формат PNG. SVG (Scalable Vector Graphics) – это формат графики, который использует векторные примитивы для представления изображений.</p>
<p>Преобразование SVG в PNG может быть необходимо во многих случаях. Например, если вы хотите показать SVG изображение на устройстве или браузере, который не поддерживает SVG, вам может потребоваться конвертировать его в PNG. Также конвертация может быть полезна, когда требуется оптимизация размера файла или сохранение изображения с прозрачным фоном.</p>
<p>Для выполнения конвертации SVG в PNG можно использовать различные программные инструменты и библиотеки. Рассмотрим несколько примеров кода на различных языках программирования:</p>
<pre><code class="python">import cairosvg
def svg_to_png(input_file, output_file):
cairosvg.svg2png(url=input_file, write_to=output_file)
svg_to_png("input.svg", "output.png")
</code></pre>
<pre><code class="javascript">const svg2img = require('svg2img');
function svg_to_png(input_file, output_file) {
svg2img(input_file, function(error, buffer) {
if (error) {
console.error(error);
return;
}
fs.writeFileSync(output_file, buffer);
});
}
svg_to_png("input.svg", "output.png");
</code></pre>
<pre><code class="php"><?php
$input_file = "input.svg";
$output_file = "output.png";
$im = new Imagick();
$im->readImage($input_file);
$im->setImageFormat("png");
$im->writeImage($output_file);
$im->clear();
$im->destroy();
?>
</code></pre>
<pre><code class="java">import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.image.PNGTranscoder;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class SvgToPngConverter {
public static void main(String[] args) {
String inputFilePath = "input.svg";
String outputFilePath = "output.png";
try (FileInputStream input = new FileInputStream(inputFilePath);
FileOutputStream output = new FileOutputStream(outputFilePath)) {
PNGTranscoder transcoder = new PNGTranscoder();
TranscoderInput transcoderInput = new TranscoderInput(input);
TranscoderOutput transcoderOutput = new TranscoderOutput(output);
transcoder.transcode(transcoderInput, transcoderOutput);
} catch (IOException | TranscoderException e) {
e.printStackTrace();
}
}
}
</code></pre>
<pre><code class="csharp">using SkiaSharp;
using System.IO;
public class SvgToPngConverter
{
public static void Main()
{
string inputFilePath = "input.svg";
string outputFilePath = "output.png";
using (var inputStream = File.OpenRead(inputFilePath))
using (var svg = new SkiaSharp.Extended.Svg.SKSvg())
using (var outputStream = File.OpenWrite(outputFilePath))
{
svg.Load(inputStream);
var bitmap = new SKBitmap((int)svg.CanvasSize.Width, (int)svg.CanvasSize.Height);
var canvas = new SKCanvas(bitmap);
canvas.DrawPicture(svg.Picture);
bitmap.Encode(SKEncodedImageFormat.Png, 100).SaveTo(outputStream);
canvas.Dispose();
bitmap.Dispose();
}
}
}
</code></pre>
<p>Каждый из приведенных примеров кода демонстрирует использование различных инструментов и библиотек для конвертации SVG в PNG на разных языках программирования. Теперь вы можете выбрать подходящий вам способ и использовать его для получения результата, который вам необходим.</p>