Skip to content

Commit b93fa2f

Browse files
committed
Update OIIO & LibHEIF
• Update OpenImageIO to a latest codebase • Read and write suypport for HEIC (write is 8bit only)
1 parent fbd683d commit b93fa2f

File tree

8 files changed

+101
-59
lines changed

8 files changed

+101
-59
lines changed

Solidify/Solidify.vcxproj

Lines changed: 74 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@
3131
<Import Project="$(QtMsBuild)\qt_defaults.props" />
3232
</ImportGroup>
3333
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" Label="QtSettings">
34-
<QtInstall>5.15.2_msvc2019_64</QtInstall>
34+
<QtInstall>6.2.4_msvc2019_64</QtInstall>
3535
<QtModules>core;gui;widgets</QtModules>
3636
<QtBuildConfig>debug</QtBuildConfig>
3737
<QtQMLDebugEnable>true</QtQMLDebugEnable>
3838
</PropertyGroup>
3939
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="QtSettings">
40-
<QtInstall>5.15.2_msvc2019_64</QtInstall>
40+
<QtInstall>6.2.4_msvc2019_64</QtInstall>
4141
<QtModules>core;gui;widgets</QtModules>
4242
<QtBuildConfig>release</QtBuildConfig>
4343
</PropertyGroup>
@@ -60,20 +60,19 @@
6060
<LibraryPath>E:\DVR\debug\lib;E:\DVR\lib;$(LibraryPath)</LibraryPath>
6161
<IgnoreImportLibrary>true</IgnoreImportLibrary>
6262
<SourcePath>E:\GH\LibRaw\src;E:\GH\OpenColorIO\src;E:\GH\OpenImageIO\src;$(VC_SourcePath);$(SourcePath)</SourcePath>
63-
<ExternalIncludePath>C:\Qt\5.15.2\msvc2019_64\include;E:\DVR\include;e:\DVR\include\boost-1_84;e:\GH\toml11\build\RELEASE\include;$(VC_IncludePath);$(WindowsSDK_IncludePath);</ExternalIncludePath>
63+
<ExternalIncludePath>C:\Qt\6.2.4\msvc2019_64\include;E:\DVR\include;e:\DVR\include\boost-1_85;e:\GH\toml11\build\RELEASE\include;$(VC_IncludePath);$(WindowsSDK_IncludePath);</ExternalIncludePath>
6464
</PropertyGroup>
6565
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
6666
<LibraryPath>E:\DVR\lib;$(LibraryPath)</LibraryPath>
6767
<SourcePath>E:\GH\LibRaw\src;E:\GH\OpenColorIO\src;E:\GH\OpenImageIO\src;$(VC_SourcePath);$(SourcePath)</SourcePath>
68-
<ExternalIncludePath>C:\Qt\5.15.2\msvc2019_64\include;E:\DVR\include;e:\DVR\include\boost-1_84;$(VC_IncludePath);e:\GH\toml11\build\RELEASE\include;$(WindowsSDK_IncludePath);</ExternalIncludePath>
68+
<ExternalIncludePath>C:\Qt\6.2.4\msvc2019_64\include;E:\DVR\include;e:\DVR\include\boost-1_85;$(VC_IncludePath);e:\GH\toml11\build\RELEASE\include;$(WindowsSDK_IncludePath);</ExternalIncludePath>
6969
</PropertyGroup>
7070
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
7171
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
7272
<ClCompile>
7373
<LanguageStandard>stdcpp17</LanguageStandard>
7474
<LanguageStandard_C>stdc11</LanguageStandard_C>
7575
<PreprocessorDefinitions />
76-
<AdditionalOptions>-DBOOST_USE_WINAPI_VERSION=BOOST_WINAPI_VERSION_WIN7 %(AdditionalOptions)</AdditionalOptions>
7776
</ClCompile>
7877
<QtMoc>
7978
<PrependInclude>$(ProjectDir)src\stdafx.h;%(PrependInclude)</PrependInclude>
@@ -100,6 +99,17 @@ xcopy /y e:\DVR\bin\Iex-3_2.dll "$(TargetDir)"
10099
xcopy /y e:\DVR\bin\raw_r.dll "$(TargetDir)"
101100
xcopy /y e:\DVR\bin\raw.dll "$(TargetDir)"
102101

102+
xcopy /y e:\DVR\bin\heif.dll "$(TargetDir)"
103+
xcopy /y e:\DVR\bin\libde265.dll "$(TargetDir)"
104+
xcopy /y e:\DVR\bin\libx265.dll "$(TargetDir)"
105+
xcopy /y e:\DVR\bin\kvazaar.dll "$(TargetDir)"
106+
xcopy /y e:\DVR\bin\brotlidec.dll "$(TargetDir)"
107+
xcopy /y e:\DVR\bin\brotlicommon.dll "$(TargetDir)"
108+
109+
xcopy /fy e:\DVR\lib\bz2.dll "$(TargetDir)bz2-1.dll"*
110+
111+
xcopy /y e:\DVR\bin\freetype.dll "$(TargetDir)"
112+
xcopy /y e:\DVR\lib\Ptex.dll "$(TargetDir)"
103113
xcopy /y e:\DVR\bin\liblzma.dll "$(TargetDir)"
104114
xcopy /y e:\DVR\bin\turbojpeg.dll "$(TargetDir)"
105115
xcopy /y e:\DVR\bin\jpeg62.dll "$(TargetDir)"
@@ -110,41 +120,41 @@ xcopy /y e:\DVR\bin\openjp2.dll "$(TargetDir)"
110120
xcopy /y e:\DVR\bin\libexpat.dll "$(TargetDir)"
111121
xcopy /y e:\DVR\bin\gif.dll "$(TargetDir)"
112122

113-
xcopy /y e:\GH\Little-CMS\bin\lcms2.dll "$(TargetDir)"
123+
xcopy /y e:\GH\Little-CMS\RELEASE\bin\lcms2.dll "$(TargetDir)"
114124

115125
xcopy /y e:\DVR\bin\OpenImageIO.dll "$(TargetDir)"
116126
xcopy /y e:\DVR\bin\OpenImageIO_Util.dll "$(TargetDir)"
117127

118-
xcopy /y e:\DVR\lib\boost_atomic-vc143-mt-x64-1_84.dll "$(TargetDir)"
119-
xcopy /y e:\DVR\lib\boost_filesystem-vc143-mt-x64-1_84.dll "$(TargetDir)"
120-
xcopy /y e:\DVR\lib\boost_log_setup-vc143-mt-x64-1_84.dll "$(TargetDir)"
121-
xcopy /y e:\DVR\lib\boost_log-vc143-mt-x64-1_84.dll "$(TargetDir)"
122-
xcopy /y e:\DVR\lib\boost_thread-vc143-mt-x64-1_84.dll "$(TargetDir)"
128+
xcopy /y e:\DVR\lib\boost_atomic-vc143-mt-x64-1_85.dll "$(TargetDir)"
129+
xcopy /y e:\DVR\lib\boost_filesystem-vc143-mt-x64-1_85.dll "$(TargetDir)"
130+
xcopy /y e:\DVR\lib\boost_log_setup-vc143-mt-x64-1_85.dll "$(TargetDir)"
131+
xcopy /y e:\DVR\lib\boost_log-vc143-mt-x64-1_85.dll "$(TargetDir)"
132+
xcopy /y e:\DVR\lib\boost_thread-vc143-mt-x64-1_85.dll "$(TargetDir)"
123133

124-
xcopy /y c:\Qt\5.15.2\msvc2019_64\bin\Qt5Core.dll "$(TargetDir)"
125-
xcopy /y c:\Qt\5.15.2\msvc2019_64\bin\Qt5Gui.dll "$(TargetDir)"
126-
xcopy /y c:\Qt\5.15.2\msvc2019_64\bin\Qt5Widgets.dll "$(TargetDir)"
127-
xcopy /y c:\Qt\5.15.2\msvc2019_64\bin\Qt5Svg.dll "$(TargetDir)"
134+
xcopy /y c:\Qt\6.2.4\msvc2019_64\bin\Qt6Core.dll "$(TargetDir)"
135+
xcopy /y c:\Qt\6.2.4\msvc2019_64\bin\Qt6Gui.dll "$(TargetDir)"
136+
xcopy /y c:\Qt\6.2.4\msvc2019_64\bin\Qt6Widgets.dll "$(TargetDir)"
137+
xcopy /y c:\Qt\6.2.4\msvc2019_64\bin\Qt6Svg.dll "$(TargetDir)"
128138

129139
mkdir "$(TargetDir)\plugins\platforms"
130140
mkdir "$(TargetDir)\plugins\imageformats"
131141
mkdir "$(TargetDir)\plugins\styles"
132142
mkdir "$(TargetDir)\plugins\iconengines"
133143

134-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\platforms\qwindows.dll "$(TargetDir)\plugins\platforms"
144+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\platforms\qwindows.dll "$(TargetDir)\plugins\platforms"
135145

136-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qgif.dll "$(TargetDir)\plugins\imageformats"
137-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qicns.dll "$(TargetDir)\plugins\imageformats"
138-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qico.dll "$(TargetDir)\plugins\imageformats"
139-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qjpeg.dll "$(TargetDir)\plugins\imageformats"
140-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qsvg.dll "$(TargetDir)\plugins\imageformats"
141-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qtga.dll "$(TargetDir)\plugins\imageformats"
142-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qtiff.dll "$(TargetDir)\plugins\imageformats"
143-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qwbmp.dll "$(TargetDir)\plugins\imageformats"
144-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qwebp.dll "$(TargetDir)\plugins\imageformats"
146+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qgif.dll "$(TargetDir)\plugins\imageformats"
147+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qicns.dll "$(TargetDir)\plugins\imageformats"
148+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qico.dll "$(TargetDir)\plugins\imageformats"
149+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qjpeg.dll "$(TargetDir)\plugins\imageformats"
150+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qsvg.dll "$(TargetDir)\plugins\imageformats"
151+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qtga.dll "$(TargetDir)\plugins\imageformats"
152+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qtiff.dll "$(TargetDir)\plugins\imageformats"
153+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qwbmp.dll "$(TargetDir)\plugins\imageformats"
154+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qwebp.dll "$(TargetDir)\plugins\imageformats"
145155

146-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\styles\qwindowsvistastyle.dll "$(TargetDir)\plugins\styles"
147-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\iconengines\qsvgicon.dll "$(TargetDir)\plugins\iconengines"
156+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\styles\qwindowsvistastyle.dll "$(TargetDir)\plugins\styles"
157+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\iconengines\qsvgicon.dll "$(TargetDir)\plugins\iconengines"
148158

149159
xcopy /y e:\DVR\bin\libsharpyuv.dll "$(TargetDir)"
150160
xcopy /y e:\DVR\bin\libwebp.dll "$(TargetDir)"
@@ -157,7 +167,6 @@ xcopy /y e:\DVR\bin\libwebpmux.dll "$(TargetDir)"</Command>
157167
<ClCompile>
158168
<LanguageStandard>stdcpp17</LanguageStandard>
159169
<LanguageStandard_C>stdc11</LanguageStandard_C>
160-
<AdditionalOptions>-DBOOST_USE_WINAPI_VERSION=BOOST_WINAPI_VERSION_WIN7 %(AdditionalOptions)</AdditionalOptions>
161170
</ClCompile>
162171
<QtMoc>
163172
<PrependInclude>$(ProjectDir)src\stdafx.h;%(PrependInclude)</PrependInclude>
@@ -192,6 +201,21 @@ xcopy /y e:\DVR\bin\Iex-3_2_d.dll "$(TargetDir)"
192201
xcopy /y e:\DVR\bin\raw_rd.dll "$(TargetDir)"
193202
xcopy /y e:\DVR\bin\rawd.dll "$(TargetDir)"
194203

204+
xcopy /y e:\DVR\bin\freetyped.dll "$(TargetDir)"
205+
206+
xcopy /y e:\DVR\bin\heifd.dll "$(TargetDir)"
207+
xcopy /y e:\DVR\bin\libde265d.dll "$(TargetDir)"
208+
xcopy /y e:\DVR\bin\libx265d.dll "$(TargetDir)"
209+
210+
xcopy /y e:\DVR\lib\bz2d.dll "$(TargetDir)bz2-1.dll"*
211+
212+
xcopy /y e:\DVR\bin\kvazaard.dll "$(TargetDir)"
213+
xcopy /y e:\DVR\bin\brotliencd.dll "$(TargetDir)"
214+
xcopy /y e:\DVR\bin\brotlidecd.dll "$(TargetDir)"
215+
xcopy /y e:\DVR\bin\brotlicommond.dll "$(TargetDir)"
216+
217+
xcopy /y e:\DVR\bin\freetyped.dll "$(TargetDir)"
218+
xcopy /y e:\DVR\lib\Ptex_d.dll "$(TargetDir)"
195219
xcopy /y e:\DVR\debug\bin\liblzma.dll "$(TargetDir)"
196220
xcopy /y e:\DVR\debug\bin\turbojpeg.dll "$(TargetDir)"
197221
xcopy /y e:\DVR\debug\bin\jpeg62.dll "$(TargetDir)"
@@ -202,41 +226,41 @@ xcopy /y e:\DVR\bin\openjp2d.dll "$(TargetDir)"
202226
xcopy /y e:\DVR\bin\libexpatd.dll "$(TargetDir)"
203227
xcopy /y e:\DVR\debug\bin\gif.dll "$(TargetDir)"
204228

205-
xcopy /y e:\GH\Little-CMS\debug\lcms2.dll "$(TargetDir)"
229+
xcopy /y e:\GH\Little-CMS\DEBUG\bin\lcms2.dll "$(TargetDir)"
206230

207231
xcopy /y e:\DVR\bin\OpenImageIO_d.dll "$(TargetDir)"
208232
xcopy /y e:\DVR\bin\OpenImageIO_Util_d.dll "$(TargetDir)"
209233

210-
xcopy /y e:\DVR\lib\boost_atomic-vc143-mt-gd-x64-1_84.dll "$(TargetDir)"
211-
xcopy /y e:\DVR\lib\boost_filesystem-vc143-mt-gd-x64-1_84.dll "$(TargetDir)"
212-
xcopy /y e:\DVR\lib\boost_log_setup-vc143-mt-gd-x64-1_84.dll "$(TargetDir)"
213-
xcopy /y e:\DVR\lib\boost_log-vc143-mt-gd-x64-1_84.dll "$(TargetDir)"
214-
xcopy /y e:\DVR\lib\boost_thread-vc143-mt-gd-x64-1_84.dll "$(TargetDir)"
234+
xcopy /y e:\DVR\lib\boost_atomic-vc143-mt-gd-x64-1_85.dll "$(TargetDir)"
235+
xcopy /y e:\DVR\lib\boost_filesystem-vc143-mt-gd-x64-1_85.dll "$(TargetDir)"
236+
xcopy /y e:\DVR\lib\boost_log_setup-vc143-mt-gd-x64-1_85.dll "$(TargetDir)"
237+
xcopy /y e:\DVR\lib\boost_log-vc143-mt-gd-x64-1_85.dll "$(TargetDir)"
238+
xcopy /y e:\DVR\lib\boost_thread-vc143-mt-gd-x64-1_85.dll "$(TargetDir)"
215239

216-
xcopy /y c:\Qt\5.15.2\msvc2019_64\bin\Qt5Cored.dll "$(TargetDir)"
217-
xcopy /y c:\Qt\5.15.2\msvc2019_64\bin\Qt5Guid.dll "$(TargetDir)"
218-
xcopy /y c:\Qt\5.15.2\msvc2019_64\bin\Qt5Widgetsd.dll "$(TargetDir)"
219-
xcopy /y c:\Qt\5.15.2\msvc2019_64\bin\Qt5Svgd.dll "$(TargetDir)"
240+
xcopy /y c:\Qt\6.2.4\msvc2019_64\bin\Qt5Cored.dll "$(TargetDir)"
241+
xcopy /y c:\Qt\6.2.4\msvc2019_64\bin\Qt5Guid.dll "$(TargetDir)"
242+
xcopy /y c:\Qt\6.2.4\msvc2019_64\bin\Qt5Widgetsd.dll "$(TargetDir)"
243+
xcopy /y c:\Qt\6.2.4\msvc2019_64\bin\Qt5Svgd.dll "$(TargetDir)"
220244

221245
mkdir "$(TargetDir)\plugins\platforms"
222246
mkdir "$(TargetDir)\plugins\imageformats"
223247
mkdir "$(TargetDir)\plugins\styles"
224248
mkdir "$(TargetDir)\plugins\iconengines"
225249

226-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\platforms\qwindowsd.dll "$(TargetDir)\plugins\platforms"
250+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\platforms\qwindowsd.dll "$(TargetDir)\plugins\platforms"
227251

228-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qgifd.dll "$(TargetDir)\plugins\imageformats"
229-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qicnsd.dll "$(TargetDir)\plugins\imageformats"
230-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qicod.dll "$(TargetDir)\plugins\imageformats"
231-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qjpegd.dll "$(TargetDir)\plugins\imageformats"
232-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qsvgd.dll "$(TargetDir)\plugins\imageformats"
233-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qtgad.dll "$(TargetDir)\plugins\imageformats"
234-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qtiffd.dll "$(TargetDir)\plugins\imageformats"
235-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qwbmpd.dll "$(TargetDir)\plugins\imageformats"
236-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qwebpd.dll "$(TargetDir)\plugins\imageformats"
252+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qgifd.dll "$(TargetDir)\plugins\imageformats"
253+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qicnsd.dll "$(TargetDir)\plugins\imageformats"
254+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qicod.dll "$(TargetDir)\plugins\imageformats"
255+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qjpegd.dll "$(TargetDir)\plugins\imageformats"
256+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qsvgd.dll "$(TargetDir)\plugins\imageformats"
257+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qtgad.dll "$(TargetDir)\plugins\imageformats"
258+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qtiffd.dll "$(TargetDir)\plugins\imageformats"
259+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qwbmpd.dll "$(TargetDir)\plugins\imageformats"
260+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\imageformats\qwebpd.dll "$(TargetDir)\plugins\imageformats"
237261

238-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\styles\qwindowsvistastyled.dll "$(TargetDir)\plugins\styles"
239-
xcopy /y c:\Qt\5.15.2\msvc2019_64\plugins\iconengines\qsvgicond.dll "$(TargetDir)\plugins\iconengines"
262+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\styles\qwindowsvistastyled.dll "$(TargetDir)\plugins\styles"
263+
xcopy /y c:\Qt\6.2.4\msvc2019_64\plugins\iconengines\qsvgicond.dll "$(TargetDir)\plugins\iconengines"
240264

241265
xcopy /y e:\DVR\bin\libsharpyuvd.dll "$(TargetDir)"
242266
xcopy /y e:\DVR\bin\libwebpd.dll "$(TargetDir)"

Solidify/src/UI.CPP

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,8 @@ MainWindow::MainWindow() {
173173
frmt_Png = createAction("PNG", FrmtGroup, fmt_submenu, true, (settings.fileFormat == 2));
174174
frmt_Jpg = createAction("JPEG", FrmtGroup, fmt_submenu, true, (settings.fileFormat == 3));
175175
frmt_Jp2 = createAction("JPEG-2000", FrmtGroup, fmt_submenu, true, (settings.fileFormat == 4));
176-
frmt_Ppm = createAction("PPM", FrmtGroup, fmt_submenu, true, (settings.fileFormat == 5));
176+
frmt_Hic = createAction("HEIC", FrmtGroup, fmt_submenu, true, (settings.fileFormat == 5));
177+
frmt_Ppm = createAction("PPM", FrmtGroup, fmt_submenu, true, (settings.fileFormat == 6));
177178

178179
// Bits Depth
179180
bit_orig = createAction("Original", BitsGroup, bit_submenu, true, (settings.bitDepth == -1));
@@ -240,7 +241,7 @@ MainWindow::MainWindow() {
240241
for (QAction* action : rng_act) {
241242
connect(action, &QAction::triggered, this, &MainWindow::rngSettings);
242243
}
243-
QList<QAction*> format_act = { frmt_Org, frmt_Tif, frmt_Exr, frmt_Png, frmt_Jpg, frmt_Jp2, frmt_Ppm };
244+
QList<QAction*> format_act = { frmt_Org, frmt_Tif, frmt_Exr, frmt_Png, frmt_Jpg, frmt_Jp2, frmt_Hic, frmt_Ppm };
244245
for (QAction* action : format_act) {
245246
connect(action, &QAction::triggered, this, &MainWindow::frmtSettings);
246247
}
@@ -342,8 +343,13 @@ void MainWindow::frmtSettings() {
342343
emit updateTextSignal("File format set to JPEG-2000");
343344
qDebug() << "File format set to JPEG-2000";
344345
}
345-
else if (action == frmt_Ppm) {
346+
else if (action == frmt_Hic) {
346347
settings.fileFormat = 5;
348+
emit updateTextSignal("File format set to HEIC");
349+
qDebug() << "File format set to HEIC";
350+
}
351+
else if (action == frmt_Ppm) {
352+
settings.fileFormat = 6;
347353
emit updateTextSignal("File format set to PPM");
348354
qDebug() << "File format set to PPM";
349355
}

Solidify/src/processing.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ QString getExtension(const QString& fileName, Settings* settings) {
7373
QString extension = "." + fileInfo.completeSuffix();
7474
extension = extension.toLower();
7575
switch (settings->fileFormat) {
76-
//-1 - original, 0 - TIFF, 1 - OpenEXR, 2 - PNG, 3 - JPEG, 4 - JPEG-2000, 5 - PPM
76+
//-1 - original, 0 - TIFF, 1 - OpenEXR, 2 - PNG, 3 - JPEG, 4 - JPEG-2000, 5 - HEIC,6 - PPM
7777
case 0:
7878
return ".tif";
7979
case 1:
@@ -85,6 +85,8 @@ QString getExtension(const QString& fileName, Settings* settings) {
8585
case 4:
8686
return ".jp2";
8787
case 5:
88+
return ".heic";
89+
case 6:
8890
return ".ppm";
8991
}
9092
getWritableExt(&extension, settings);

Solidify/src/settings.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ bool loadSettings(Settings& settings, const std::string& filename) {
119119
}
120120
if (!check("Export", "FileFormat")) return false;
121121
settings.fileFormat = parsed["Export"]["FileFormat"].as_integer();
122-
if (settings.fileFormat < -1 || settings.fileFormat > 5) {
122+
if (settings.fileFormat < -1 || settings.fileFormat > 6) {
123123
LOG(error) << "Error parsing settings file: [Export] section: \"FileFormat\" key value is out of range." << std::endl;
124124
return false;
125125
}

Solidify/src/settings.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ struct Settings {
5656
repairMode = 0; // Repair mode: 0 - disabled, 1 - Z, 2 - Y, 3 - X, 4 - -Z, 5 - -Y, 6 - -X
5757

5858
rangeMode = 0; // Float type: 0 - unsigned, 1 - signed, 2 - unsigned -> signed, 3 - signed -> unsigned
59-
fileFormat = -1; // File format: -1 - original, 0 - TIFF, 1 - OpenEXR, 2 - PNG, 3 - JPEG, 4 - JPEG-2000, 5 - PPM
59+
fileFormat = -1; // File format: -1 - original, 0 - TIFF, 1 - OpenEXR, 2 - PNG, 3 - JPEG, 4 - JPEG-2000, 5 - HEIC, 6 - PPM
6060
defFormat = 0; // Default file format = TIFF
6161
bitDepth = -1; // Bit depth: -1 - Original, 0 - uint8, 1 - uint16, 2 - uint32, 3 - uint64, 4 - half, 5 - float, 6 - double
6262
defBDepth = 1; // Default bit depth = uint16
6363
rawRot = -1; // Raw rotation: -1 - Auto EXIF, 0 - Unrotated/Horisontal, 3 - 180 Horisontal, 5 - 90 CW Vertical, 6 - 90 CCW Vertical
6464

6565
normNames = { "normal", "tangent", "object", "world" };
6666
mask_substr = { "_mask.", "_mask_", "_alpha.", "_alpha_" };
67-
out_formats = { "tif", "exr", "png", "jpg", "jp2", "ppm" };
67+
out_formats = { "tif", "exr", "png", "jpg", "jp2", "heic", "ppm" };
6868
}
6969

7070
// get bit depth in bytes

Solidify/src/sldf_config.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ empty = true
3939
# 2 - PNG
4040
# 3 - JPEG
4141
# 4 - JPEG-2000
42-
# 5 - PPM
42+
# 5 - HEIC
43+
# 6 - PPM
4344
DefaultFormat = 0
4445
FileFormat = -1
4546
# Bit depth:

Solidify/src/solidify.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,9 @@ bool solidify_main(const std::string& inputFileName, const std::string& outputFi
454454
ospec.attribute("oiio:UnassociatedAlpha", 1);
455455
ospec.attribute("jpeg:subsampling", "4:4:4");
456456
ospec.attribute("Compression", "jpeg:100");
457+
if (settings.fileFormat == 5)
458+
ospec.attribute("Compression", "heic:100");
459+
457460
ospec.attribute("png:compressionLevel", 4);
458461
//ospec.attribute("tiff:write_exif", 0);
459462
//rspec.attribute("tiff:bigtiff", 1);
@@ -476,6 +479,12 @@ bool solidify_main(const std::string& inputFileName, const std::string& outputFi
476479
return false;
477480
}
478481
out->open(outputFileName, ospec, ImageOutput::Create);
482+
if (out->has_error()) {
483+
LOG(error) << "Error opening " << outputFileName << std::endl;
484+
LOG(error) << out->geterror() << std::endl;
485+
mainWindow->emitUpdateTextSignal("Error! Check console for details");
486+
return false;
487+
}
479488

480489
QMetaObject::invokeMethod(progressBar, "setValue", Qt::QueuedConnection, Q_ARG(int, 0));
481490

Solidify/src/ui.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
#include <QtWidgets/QMainWindow>
2020
#include <QtWidgets/QMenuBar>
2121
#include <QtWidgets/QMenu>
22-
#include <QtWidgets/QAction>
2322

2423
#include <QtWidgets/QApplication>
2524
#include <QtWidgets/QLabel>
@@ -120,6 +119,7 @@ private slots:
120119
QAction* frmt_Tif; // TIFF
121120
QAction* frmt_Exr; // OpenEXR
122121
QAction* frmt_Jp2; // JPEG 2000
122+
QAction* frmt_Hic; // HEIC
123123
QAction* frmt_Ppm; // PPM
124124

125125
//std::vector<QAction*> bitActions;

0 commit comments

Comments
 (0)