В настоящее время я использую SVGGraphics2D для создания файла SVG. Я смог получить SVG-файл в качестве вывода, рисуя фигуры на нем, но тогда мне нужно иметь файл bufferedimage - файл PNG, нарисованный в документе SVG. Ниже приведены текущие коды, с которыми я работаю.Java - сгенерируйте SVG-файл из PNG-файла с помощью SVGGraphics2D
Вопрос: Каким должен быть надлежащий процесс рисования буферизованного изображения в документе SVG?
Способ нарисовать изображение из источника.
public void paintImage(Graphics g) throws IOException {
File imageSrc = new File("C:\\Users\\anthony\\Downloads\\SVGGraphics2D\\src\\svggraphics\\eg.png");
BufferedImage img = ImageIO.read(imageSrc);
Graphics2D g2d = (Graphics2D) img.getGraphics();
g2d.drawImage(img,0,0,null);
}
Создает документ SVG.
public static void main(String [] args) throws IOException {
DOMImplementation domImpl = GenericDOMImplementation.getDOMImplementation();
String svgNS = "http://www.w3.org/2000/svg";
Document document = domImpl.createDocument(svgNS, "svg", null);
SVGGraphics2D graphics = new SVGGraphics2D(document);
TestSVGGenerator test = new TestSVGGenerator();
test.paintImage(graphics);
boolean useCSS = true;
Writer out = new OutputStreamWriter(new FileOutputStream("test.svg"), "UTF-8");
graphics.stream(out, useCSS);
}
У меня нет вопросов. Btw. SVG является двумерным векторным форматом, но имеет возможность хранить 2D растровые изображения, но это не эффективный способ хранения изображений. – Spektre
Спасибо. Но возможно ли прямо преобразовать PNG-изображение в SVG? Поскольку я уже пытался преобразовать изображения PNG в Base64 в SVG, но он все еще не работает. – ACM
Я не думаю, что SVG поддерживает части PNG изначально. Скорее всего, вам нужно преобразовать PNG в несжатое изображение и сохранить это. Не знаю, поддерживает ли библиотека, но вы все же можете добавить программный пакет в SVG, а просто XML см. В документах SVG для ... – Spektre