Export svg and png with white background on score media generation
This commit is contained in:
parent
d5f35e4e29
commit
7a63e7f0cd
2 changed files with 14 additions and 6 deletions
|
@ -2618,7 +2618,7 @@ bool MuseScore::savePng(Score* score, const QString& name)
|
||||||
// return true on success
|
// return true on success
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
|
||||||
bool MuseScore::savePng(Score* score, QIODevice* device, int pageNumber)
|
bool MuseScore::savePng(Score* score, QIODevice* device, int pageNumber, bool drawPageBackground)
|
||||||
{
|
{
|
||||||
const bool screenshot = false;
|
const bool screenshot = false;
|
||||||
const bool transparent = preferences.getBool(PREF_EXPORT_PNG_USETRANSPARENCY);
|
const bool transparent = preferences.getBool(PREF_EXPORT_PNG_USETRANSPARENCY);
|
||||||
|
@ -2663,6 +2663,10 @@ bool MuseScore::savePng(Score* score, QIODevice* device, int pageNumber)
|
||||||
p.scale(mag_, mag_);
|
p.scale(mag_, mag_);
|
||||||
if (localTrimMargin >= 0)
|
if (localTrimMargin >= 0)
|
||||||
p.translate(-r.topLeft());
|
p.translate(-r.topLeft());
|
||||||
|
|
||||||
|
if (drawPageBackground)
|
||||||
|
p.fillRect(r, Qt::white);
|
||||||
|
|
||||||
QList< Element*> pel = page->elements();
|
QList< Element*> pel = page->elements();
|
||||||
qStableSort(pel.begin(), pel.end(), elementLessThan);
|
qStableSort(pel.begin(), pel.end(), elementLessThan);
|
||||||
paintElements(p, pel);
|
paintElements(p, pel);
|
||||||
|
@ -2844,7 +2848,7 @@ bool MuseScore::saveSvg(Score* score, const QString& saveName)
|
||||||
/// Save a single page
|
/// Save a single page
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
|
||||||
bool MuseScore::saveSvg(Score* score, QIODevice* device, int pageNumber)
|
bool MuseScore::saveSvg(Score* score, QIODevice* device, int pageNumber, bool drawPageBackground)
|
||||||
{
|
{
|
||||||
QString title(score->title());
|
QString title(score->title());
|
||||||
score->setPrinting(true);
|
score->setPrinting(true);
|
||||||
|
@ -2878,6 +2882,10 @@ bool MuseScore::saveSvg(Score* score, QIODevice* device, int pageNumber)
|
||||||
MScore::pixelRatio = DPI / printer.logicalDpiX();
|
MScore::pixelRatio = DPI / printer.logicalDpiX();
|
||||||
if (trimMargin >= 0)
|
if (trimMargin >= 0)
|
||||||
p.translate(-r.topLeft());
|
p.translate(-r.topLeft());
|
||||||
|
|
||||||
|
if (drawPageBackground)
|
||||||
|
p.fillRect(r, Qt::white);
|
||||||
|
|
||||||
// 1st pass: StaffLines
|
// 1st pass: StaffLines
|
||||||
for (System* s : page->systems()) {
|
for (System* s : page->systems()) {
|
||||||
for (int i = 0, n = s->staves()->size(); i < n; i++) {
|
for (int i = 0, n = s->staves()->size(); i < n; i++) {
|
||||||
|
@ -3307,7 +3315,7 @@ bool MuseScore::exportAllMediaFiles(const QString& inFilePath, const QString& ou
|
||||||
QByteArray pngData;
|
QByteArray pngData;
|
||||||
QBuffer pngDevice(&pngData);
|
QBuffer pngDevice(&pngData);
|
||||||
pngDevice.open(QIODevice::ReadWrite);
|
pngDevice.open(QIODevice::ReadWrite);
|
||||||
res &= mscore->savePng(score.get(), &pngDevice, i);
|
res &= mscore->savePng(score.get(), &pngDevice, i, /* drawPageBackground */ true);
|
||||||
bool lastArrayValue = ((score->pages().size() - 1) == i);
|
bool lastArrayValue = ((score->pages().size() - 1) == i);
|
||||||
jsonWriter.addValue(pngData.toBase64(), lastArrayValue);
|
jsonWriter.addValue(pngData.toBase64(), lastArrayValue);
|
||||||
}
|
}
|
||||||
|
@ -3319,7 +3327,7 @@ bool MuseScore::exportAllMediaFiles(const QString& inFilePath, const QString& ou
|
||||||
QByteArray svgData;
|
QByteArray svgData;
|
||||||
QBuffer svgDevice(&svgData);
|
QBuffer svgDevice(&svgData);
|
||||||
svgDevice.open(QIODevice::ReadWrite);
|
svgDevice.open(QIODevice::ReadWrite);
|
||||||
res &= mscore->saveSvg(score.get(), &svgDevice, i);
|
res &= mscore->saveSvg(score.get(), &svgDevice, i, /* drawPageBackground */ true);
|
||||||
bool lastArrayValue = ((score->pages().size() - 1) == i);
|
bool lastArrayValue = ((score->pages().size() - 1) == i);
|
||||||
jsonWriter.addValue(svgData.toBase64(), lastArrayValue);
|
jsonWriter.addValue(svgData.toBase64(), lastArrayValue);
|
||||||
}
|
}
|
||||||
|
|
|
@ -722,8 +722,8 @@ class MuseScore : public QMainWindow, public MuseScoreCore {
|
||||||
bool saveMp3(Score*, const QString& name);
|
bool saveMp3(Score*, const QString& name);
|
||||||
bool saveMp3(Score*, QIODevice*, bool& wasCanceled);
|
bool saveMp3(Score*, QIODevice*, bool& wasCanceled);
|
||||||
bool saveSvg(Score*, const QString& name);
|
bool saveSvg(Score*, const QString& name);
|
||||||
bool saveSvg(Score*, QIODevice*, int pageNum = 0);
|
bool saveSvg(Score*, QIODevice*, int pageNum = 0, bool drawPageBackground = false);
|
||||||
bool savePng(Score*, QIODevice*, int pageNum = 0);
|
bool savePng(Score*, QIODevice*, int pageNum = 0, bool drawPageBackground = false);
|
||||||
bool savePng(Score*, const QString& name);
|
bool savePng(Score*, const QString& name);
|
||||||
bool saveMidi(Score*, const QString& name);
|
bool saveMidi(Score*, const QString& name);
|
||||||
bool saveMidi(Score*, QIODevice*);
|
bool saveMidi(Score*, QIODevice*);
|
||||||
|
|
Loading…
Reference in a new issue