Add support for TIFF format. Closes smart-pattern/valentina#87
This commit is contained in:
parent
f81babbf7b
commit
2406e98350
|
@ -10,6 +10,7 @@
|
||||||
- Improve restrict dimension dialog. Disable not available combinations.
|
- Improve restrict dimension dialog. Disable not available combinations.
|
||||||
- Improve multisize measurements format. Allow excluding combinations inside min/max range.
|
- Improve multisize measurements format. Allow excluding combinations inside min/max range.
|
||||||
- New warning. Grainline is not valid.
|
- New warning. Grainline is not valid.
|
||||||
|
- [smart-pattern/valentina#87] Add support for TIFF format.
|
||||||
|
|
||||||
# Version 0.7.41 Dec 4, 2020
|
# Version 0.7.41 Dec 4, 2020
|
||||||
- Bug fixes.
|
- Bug fixes.
|
||||||
|
|
7
dist/AppImage/appimage.yml
vendored
7
dist/AppImage/appimage.yml
vendored
|
@ -44,9 +44,9 @@ build:
|
||||||
|
|
||||||
# OPTIONAL: ingredient packages are packages which become part of the AppImage.
|
# OPTIONAL: ingredient packages are packages which become part of the AppImage.
|
||||||
# you may want to remove parts of their content in script section.
|
# you may want to remove parts of their content in script section.
|
||||||
# ingredients:
|
ingredients:
|
||||||
# packages:
|
packages:
|
||||||
# - xterm
|
- libqt5-qtimageformats
|
||||||
|
|
||||||
script:
|
script:
|
||||||
# OPTIONAL: compile or modify the AppDir. The environment variables:
|
# OPTIONAL: compile or modify the AppDir. The environment variables:
|
||||||
|
@ -59,6 +59,7 @@ script:
|
||||||
|
|
||||||
# create the image file
|
# create the image file
|
||||||
- unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
|
- unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
|
||||||
|
- rm -rf /usr/share/licenses/libqt5-qtimageformats
|
||||||
# bundle icu's data
|
# bundle icu's data
|
||||||
- mkdir -p $BUILD_APPDIR/usr/share/icu
|
- mkdir -p $BUILD_APPDIR/usr/share/icu
|
||||||
- cp /usr/share/icu/*/icudt*.dat $BUILD_APPDIR/usr/share/icu/
|
- cp /usr/share/icu/*/icudt*.dat $BUILD_APPDIR/usr/share/icu/
|
||||||
|
|
2
dist/OBS_debian/debian.control
vendored
2
dist/OBS_debian/debian.control
vendored
|
@ -16,7 +16,7 @@ Vcs-Browser: https://gitlab.com/smart-pattern/valentina
|
||||||
|
|
||||||
Package: valentina
|
Package: valentina
|
||||||
Architecture: i386 amd64
|
Architecture: i386 amd64
|
||||||
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libqt5core5a (>= 5.4.0) | libqt5core5 (>= 5.4.0), libqt5gui5 (>= 5.4.0) | libqt5gui5-gles (>= 5.4.0), libqt5printsupport5 (>= 5.4.0), libqt5svg5 (>= 5.4.0), libqt5widgets5 (>= 5.4.0), libqt5xml5 (>= 5.4.0), libqt5xmlpatterns5 (>= 5.4.0), libqt5concurrent5(>= 5.4.0), libqt5opengl5 (>= 5.4.0), libstdc++6 (>= 4.8), poppler-utils
|
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libqt5core5a (>= 5.4.0) | libqt5core5 (>= 5.4.0), libqt5gui5 (>= 5.4.0) | libqt5gui5-gles (>= 5.4.0), libqt5printsupport5 (>= 5.4.0), libqt5svg5 (>= 5.4.0), libqt5widgets5 (>= 5.4.0), libqt5xml5 (>= 5.4.0), libqt5xmlpatterns5 (>= 5.4.0), libqt5concurrent5(>= 5.4.0), libqt5opengl5 (>= 5.4.0), libstdc++6 (>= 4.8), poppler-utils, qt5-image-formats-plugins (>= 5.4.0)
|
||||||
Conflicts: seamly2d
|
Conflicts: seamly2d
|
||||||
Description: Pattern making program.
|
Description: Pattern making program.
|
||||||
Valentina is a cross-platform patternmaking program which allows designers
|
Valentina is a cross-platform patternmaking program which allows designers
|
||||||
|
|
5
dist/OBS_debian/debian.valentina.1
vendored
5
dist/OBS_debian/debian.valentina.1
vendored
|
@ -129,7 +129,10 @@ The path to output destination folder. By default the directory at which the app
|
||||||
.BR "*" " AutoCAD DXF 2013 ASTM файли (*.dxf) = 32,"
|
.BR "*" " AutoCAD DXF 2013 ASTM файли (*.dxf) = 32,"
|
||||||
.RE
|
.RE
|
||||||
.RS
|
.RS
|
||||||
.BR "*" " PDF tiled files (*.pdf) = 33."
|
.BR "*" " PDF tiled files (*.pdf) = 33,"
|
||||||
|
.RE
|
||||||
|
.RS
|
||||||
|
.BR "*" " TIFF файли (*.tif) = 35."
|
||||||
.RE
|
.RE
|
||||||
.IP "--bdxf"
|
.IP "--bdxf"
|
||||||
.RB "Export dxf in binary form."
|
.RB "Export dxf in binary form."
|
||||||
|
|
2
dist/debian/control
vendored
2
dist/debian/control
vendored
|
@ -16,7 +16,7 @@ Vcs-Browser: https://gitlab.com/smart-pattern/valentina
|
||||||
|
|
||||||
Package: valentina
|
Package: valentina
|
||||||
Architecture: i386 amd64
|
Architecture: i386 amd64
|
||||||
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libqt5core5a (>= 5.4.0) | libqt5core5 (>= 5.4.0), libqt5gui5 (>= 5.4.0) | libqt5gui5-gles (>= 5.4.0), libqt5printsupport5 (>= 5.4.0), libqt5svg5 (>= 5.4.0), libqt5widgets5 (>= 5.4.0), libqt5xml5 (>= 5.4.0), libqt5xmlpatterns5 (>= 5.4.0), libqt5concurrent5(>= 5.4.0), libqt5opengl5 (>= 5.4.0), libstdc++6 (>= 4.8), poppler-utils
|
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libqt5core5a (>= 5.4.0) | libqt5core5 (>= 5.4.0), libqt5gui5 (>= 5.4.0) | libqt5gui5-gles (>= 5.4.0), libqt5printsupport5 (>= 5.4.0), libqt5svg5 (>= 5.4.0), libqt5widgets5 (>= 5.4.0), libqt5xml5 (>= 5.4.0), libqt5xmlpatterns5 (>= 5.4.0), libqt5concurrent5(>= 5.4.0), libqt5opengl5 (>= 5.4.0), libstdc++6 (>= 4.8), poppler-utils, qt5-image-formats-plugins (>= 5.4.0)
|
||||||
Conflicts: seamly2d
|
Conflicts: seamly2d
|
||||||
Description: Pattern making program.
|
Description: Pattern making program.
|
||||||
Valentina is a cross-platform patternmaking program which allows designers
|
Valentina is a cross-platform patternmaking program which allows designers
|
||||||
|
|
5
dist/debian/valentina.1
vendored
5
dist/debian/valentina.1
vendored
|
@ -129,7 +129,10 @@ The path to output destination folder. By default the directory at which the app
|
||||||
.BR "*" " AutoCAD DXF 2013 ASTM файли (*.dxf) = 32,"
|
.BR "*" " AutoCAD DXF 2013 ASTM файли (*.dxf) = 32,"
|
||||||
.RE
|
.RE
|
||||||
.RS
|
.RS
|
||||||
.BR "*" " PDF tiled files (*.pdf) = 33."
|
.BR "*" " PDF tiled files (*.pdf) = 33,"
|
||||||
|
.RE
|
||||||
|
.RS
|
||||||
|
.BR "*" " TIFF файли (*.tif) = 35."
|
||||||
.RE
|
.RE
|
||||||
.IP "--bdxf"
|
.IP "--bdxf"
|
||||||
.RB "Export dxf in binary form."
|
.RB "Export dxf in binary form."
|
||||||
|
|
4
dist/rpm/valentina.spec
vendored
4
dist/rpm/valentina.spec
vendored
|
@ -43,6 +43,8 @@ BuildRequires: libproxy-pacrunner
|
||||||
BuildRequires: qttools5
|
BuildRequires: qttools5
|
||||||
BuildRequires: qtbase5-common-devel >= 5.4.0
|
BuildRequires: qtbase5-common-devel >= 5.4.0
|
||||||
|
|
||||||
|
Requires: qtimageformats5
|
||||||
|
|
||||||
%if 0%{?mageia} == 6
|
%if 0%{?mageia} == 6
|
||||||
BuildRequires: pkgconfig(openssl)
|
BuildRequires: pkgconfig(openssl)
|
||||||
%else
|
%else
|
||||||
|
@ -58,6 +60,8 @@ BuildRequires: libqt5-qttools
|
||||||
BuildRequires: libQt5Svg-devel
|
BuildRequires: libQt5Svg-devel
|
||||||
BuildRequires: update-desktop-files
|
BuildRequires: update-desktop-files
|
||||||
|
|
||||||
|
Requires: libqt5-qtimageformats
|
||||||
|
|
||||||
%if 0%{?suse_version} == 1310
|
%if 0%{?suse_version} == 1310
|
||||||
BuildRequires: libQt5XmlPatterns-devel
|
BuildRequires: libQt5XmlPatterns-devel
|
||||||
%endif
|
%endif
|
||||||
|
|
|
@ -235,6 +235,7 @@ void DialogSaveLayout::SetBinaryDXFFormat(bool binary)
|
||||||
case LayoutExportFormats::PS:
|
case LayoutExportFormats::PS:
|
||||||
case LayoutExportFormats::EPS:
|
case LayoutExportFormats::EPS:
|
||||||
case LayoutExportFormats::NC:
|
case LayoutExportFormats::NC:
|
||||||
|
case LayoutExportFormats::TIF:
|
||||||
default:
|
default:
|
||||||
ui->checkBoxBinaryDXF->setChecked(false);
|
ui->checkBoxBinaryDXF->setChecked(false);
|
||||||
break;
|
break;
|
||||||
|
@ -282,6 +283,7 @@ bool DialogSaveLayout::IsBinaryDXFFormat() const
|
||||||
case LayoutExportFormats::PS:
|
case LayoutExportFormats::PS:
|
||||||
case LayoutExportFormats::EPS:
|
case LayoutExportFormats::EPS:
|
||||||
case LayoutExportFormats::NC:
|
case LayoutExportFormats::NC:
|
||||||
|
case LayoutExportFormats::TIF:
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -421,6 +423,8 @@ QString DialogSaveLayout::ExportFormatDescription(LayoutExportFormats format)
|
||||||
return QStringLiteral("PDF %1 %2 (*.pdf)").arg(tr("tiled"), filesStr);
|
return QStringLiteral("PDF %1 %2 (*.pdf)").arg(tr("tiled"), filesStr);
|
||||||
case LayoutExportFormats::NC:
|
case LayoutExportFormats::NC:
|
||||||
return QStringLiteral("%1 %2 (*.nc)").arg(tr("Numerical control"), filesStr);
|
return QStringLiteral("%1 %2 (*.nc)").arg(tr("Numerical control"), filesStr);
|
||||||
|
case LayoutExportFormats::TIF:
|
||||||
|
return QStringLiteral("TIFF %1 (*.tif)").arg(filesStr);
|
||||||
default:
|
default:
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
@ -474,6 +478,8 @@ QString DialogSaveLayout::ExportFormatSuffix(LayoutExportFormats format)
|
||||||
return QStringLiteral(".dxf");
|
return QStringLiteral(".dxf");
|
||||||
case LayoutExportFormats::NC:
|
case LayoutExportFormats::NC:
|
||||||
return QStringLiteral(".nc");
|
return QStringLiteral(".nc");
|
||||||
|
case LayoutExportFormats::TIF:
|
||||||
|
return QStringLiteral(".tif");
|
||||||
default:
|
default:
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
@ -606,6 +612,7 @@ void DialogSaveLayout::ShowExample()
|
||||||
case LayoutExportFormats::PS:
|
case LayoutExportFormats::PS:
|
||||||
case LayoutExportFormats::EPS:
|
case LayoutExportFormats::EPS:
|
||||||
case LayoutExportFormats::NC:
|
case LayoutExportFormats::NC:
|
||||||
|
case LayoutExportFormats::TIF:
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -843,6 +850,7 @@ QVector<std::pair<QString, LayoutExportFormats> > DialogSaveLayout::InitFormats(
|
||||||
InitFormat(LayoutExportFormats::DXF_AC1027_ASTM);
|
InitFormat(LayoutExportFormats::DXF_AC1027_ASTM);
|
||||||
InitFormat(LayoutExportFormats::PDFTiled);
|
InitFormat(LayoutExportFormats::PDFTiled);
|
||||||
// InitFormat(LayoutExportFormats::NC);
|
// InitFormat(LayoutExportFormats::NC);
|
||||||
|
InitFormat(LayoutExportFormats::TIF);
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1200,6 +1200,11 @@ void MainWindowsNoGUI::ExportScene(const QList<QGraphicsScene *> &scenes,
|
||||||
exporter.ExportToFlatDXF(scene, details);
|
exporter.ExportToFlatDXF(scene, details);
|
||||||
paper->setVisible(true);
|
paper->setVisible(true);
|
||||||
break;
|
break;
|
||||||
|
case LayoutExportFormats::TIF:
|
||||||
|
exporter.SetPen(QPen(Qt::black, qApp->Settings()->WidthMainLine(), Qt::SolidLine, Qt::RoundCap,
|
||||||
|
Qt::RoundJoin));
|
||||||
|
exporter.ExportToTIF(scene);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
qDebug() << "Can't recognize file type." << Q_FUNC_INFO;
|
qDebug() << "Can't recognize file type." << Q_FUNC_INFO;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -73,6 +73,7 @@ enum class LayoutExportFormats : qint8
|
||||||
DXF_AC1027_ASTM = 32, /* ACAD 2013. */
|
DXF_AC1027_ASTM = 32, /* ACAD 2013. */
|
||||||
PDFTiled = 33,
|
PDFTiled = 33,
|
||||||
NC = 34, /*G-code. Reserved for future*/
|
NC = 34, /*G-code. Reserved for future*/
|
||||||
|
TIF = 35,
|
||||||
COUNT /*Use only for validation*/
|
COUNT /*Use only for validation*/
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
#include <QCursor>
|
#include <QCursor>
|
||||||
#include <QGraphicsItem>
|
#include <QGraphicsItem>
|
||||||
|
#include <QImageWriter>
|
||||||
|
|
||||||
#include "../vmisc/vmath.h"
|
#include "../vmisc/vmath.h"
|
||||||
#include "../vmisc/defglobal.h"
|
#include "../vmisc/defglobal.h"
|
||||||
|
@ -169,6 +170,38 @@ void VLayoutExporter::ExportToPNG(QGraphicsScene *scene) const
|
||||||
image.save(m_fileName);
|
image.save(m_fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VLayoutExporter::ExportToTIF(QGraphicsScene *scene) const
|
||||||
|
{
|
||||||
|
// Create the image with the exact size of the shrunk scene
|
||||||
|
QSize drawingSize;
|
||||||
|
drawingSize.setWidth(qFloor(m_imageRect.width() * m_xScale + m_margins.left() + m_margins.right()));
|
||||||
|
drawingSize.setHeight(qFloor(m_imageRect.height() * m_yScale + m_margins.top() + m_margins.bottom()));
|
||||||
|
|
||||||
|
QImage image(drawingSize, QImage::Format_ARGB32);
|
||||||
|
image.fill(Qt::white);
|
||||||
|
|
||||||
|
QPainter painter(&image);
|
||||||
|
painter.translate(m_margins.left(), m_margins.top());
|
||||||
|
painter.setRenderHint(QPainter::Antialiasing, true);
|
||||||
|
painter.setPen(m_pen);
|
||||||
|
painter.setBrush(QBrush(Qt::NoBrush));
|
||||||
|
painter.scale(m_xScale, m_yScale);
|
||||||
|
|
||||||
|
scene->render(&painter, m_imageRect, m_imageRect, Qt::IgnoreAspectRatio);
|
||||||
|
|
||||||
|
QImageWriter writer;
|
||||||
|
writer.setFormat("TIF");
|
||||||
|
writer.setCompression(1); // LZW-compression
|
||||||
|
writer.setFileName(m_fileName);
|
||||||
|
|
||||||
|
if (not writer.write(image))
|
||||||
|
{ // failed to save file
|
||||||
|
qCritical() << qUtf8Printable(tr("Can't save file '%1'. Error: %2.").arg(m_fileName, writer.errorString()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VLayoutExporter::ExportToPDF(QGraphicsScene *scene) const
|
void VLayoutExporter::ExportToPDF(QGraphicsScene *scene) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -79,6 +79,7 @@ public:
|
||||||
|
|
||||||
void ExportToSVG(QGraphicsScene *scene) const;
|
void ExportToSVG(QGraphicsScene *scene) const;
|
||||||
void ExportToPNG(QGraphicsScene *scene) const;
|
void ExportToPNG(QGraphicsScene *scene) const;
|
||||||
|
void ExportToTIF(QGraphicsScene *scene) const;
|
||||||
void ExportToPDF(QGraphicsScene *scene) const;
|
void ExportToPDF(QGraphicsScene *scene) const;
|
||||||
void ExportToOBJ(QGraphicsScene *scene) const;
|
void ExportToOBJ(QGraphicsScene *scene) const;
|
||||||
void ExportToPS(QGraphicsScene *scene) const;
|
void ExportToPS(QGraphicsScene *scene) const;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user