processing4 icon indicating copy to clipboard operation
processing4 copied to clipboard

pixelDensity(2) with SVG creates incorrect viewport in the file

Open mrbbp opened this issue 2 years ago • 2 comments

Description

i was playing around with svg export and curve drawing. I'm working on MacOS with a retina display, therefore i add pixelDensity to improve display.

Expected Behavior

the document should stay in the viewbox

Current Behavior

When we export to svg, there is a glitch on the output file. there is a transform="scale(2,2)" on the exported shape. I understand why, but in fact it's useless, because it's vector shape exported. the document is defined with the right definition (created with size(width, height) in the script) by adding a transform, it modify the preview and the size of the shape in the viewbox.

Steps to Reproduce

import processing.svg.*;

void setup() {
  size(400,400, SVG, "filename_without_pixeldensity.svg");
  //pixelDensity(2);
}

void draw() {
  circle(width/2,height/2, width/2);
  exit();
}

Your Environment

  • Processing version: 4.2
  • Operating System and OS version: MacOS Ventura 13.2.1
  • Other information: Intel 2018 MBP 13"

Possible Causes / Solutions

Remove the transform="scale(2,2)" on each group of shape or adjust the document size (withand height) according to the pixelDensity instruction in the <svg> tag to have a correct preview and document viewbox.

mrbbp avatar Mar 24 '23 08:03 mrbbp

Ok, though I think I'd recommend just not using pixelDensity() in these cases.

benfry avatar Jul 16 '23 18:07 benfry