SVG scaling on import and export
@lasconic raised this issue in this thread on github: https://github.com/musescore/MuseScore/pull/2338#issuecomment-173463216 (see earlier in the thread for further details)
One real symptom: Imported SVG looks smaller that it should.
Many ways to reproduce: drag/drop, copy/paste, inside frames, in the score, etc.
The issue stems from the additional scaling that MuseScore does to adapt the core 72dpi to something that looks bigger on hi-res screens. I am not fully familiar with that code, but it seems to be wrapped up in MuseScore::physicalDotsPerInch(), Ms::DPI, and the user preferences for magnification, the key element being physicalDotsPerInch().
SVG Export currently does no scaling relative to MuseScore::physicalDotsPerInch(). So, when you view the exported SVG in your browser or other app, it will likely look smaller than it looks inside MuseScore. This is because it is likely that your screen's physicalDotsPerInch() is greater than 72.
SVG Import also does no scaling relative to physicalDotsPerInch(). This is the one fix that I believe should be implemented. I do not believe that SVG Export should do any additional scaling. But others may disagree. It is certainly possible to scale exported SVG to be the same default size as the size displayed inside MuseScore, as scaled by physicalDotsPerInch(). Remember that SVG is scalable, and this would only affect the default size for an exported image.
The change must be made inside image.cpp in Image::layout(). That code now scales an incoming SVG by dividing it by a literal value of 10. This needs to change to factor in the real _spatium value (which might not be 5.0), and also the physicalDotsPerInch().
I have not made any changes yet, as I'd like some verification as to the approach/ideas. Here is the key line of code in image.cpp:
Of course there might be other places that need to change, but they will reveal themselves in the process of debugging this one change, and this looks like the best place to start.