Skip to content

Commit

Permalink
LCMS2 wip
Browse files Browse the repository at this point in the history
  • Loading branch information
issakomi committed May 22, 2022
1 parent 7698c43 commit 6bb6286
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 18 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1016,6 +1016,7 @@ if(ALIZA_USE_SYSTEM_LCMS2)
message(STATUS "LCMS2: " ${LCMS2_LIBRARIES})
else()
set(ALIZAMS_LINK_LIBRARIES ${ALIZAMS_LINK_LIBRARIES} alizalcms2)
message(STATUS "LCMS2: alizalcms2")
endif()

link_directories("${CMAKE_CURRENT_BINARY_DIR}/bin")
Expand Down
2 changes: 1 addition & 1 deletion alizalcms/lcms2.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
// #define CMS_RELY_ON_WINDOWS_STATIC_MUTEX_INIT

// Uncomment this to remove the "register" storage class
// #define CMS_NO_REGISTER_KEYWORD 1
#define CMS_NO_REGISTER_KEYWORD 1

// ********** End of configuration toggles ******************************

Expand Down
41 changes: 24 additions & 17 deletions dicom/dicomutils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,6 @@
#include <chrono>
#include "vectormath/scalar/vectormath.h"

// TODO
//#define USE_SYSTEM_LCMS2

#ifdef USE_SYSTEM_LCMS2
#include "lcms2.h"
#else
Expand Down Expand Up @@ -8725,6 +8722,7 @@ QString DicomUtils::read_buffer(
QString(",\n samples per pixel = ") +
QVariant(static_cast<int>(samples_per_pix)).toString() +
QString(",\nnot supported.");
if (icc_profile) delete [] icc_profile;
if (elscint && !elscf.isEmpty()) QFile::remove(elscf);
return tmp_s0;
}
Expand All @@ -8739,6 +8737,7 @@ QString DicomUtils::read_buffer(
QString("Bits allocated = ") +
QVariant(static_cast<int>(pixelformat.GetBitsAllocated())).toString() +
QString(", not supported.");
if (icc_profile) delete [] icc_profile;
if (elscint && !elscf.isEmpty()) QFile::remove(elscf);
return tmp_s0;
}
Expand All @@ -8755,6 +8754,7 @@ QString DicomUtils::read_buffer(
if (singlebit_buffer_size > image_buffer_length * 8)
{
if (not_rescaled_buffer) delete [] not_rescaled_buffer;
if (icc_profile) delete [] icc_profile;
if (elscint && !elscf.isEmpty()) QFile::remove(elscf);
return QString("Wrong buffer size");
}
Expand All @@ -8768,6 +8768,7 @@ QString DicomUtils::read_buffer(
}
if (!singlebit_buffer)
{
if (icc_profile) delete [] icc_profile;
if (elscint && !elscf.isEmpty()) QFile::remove(elscf);
return QString("Buffer allocation error");
}
Expand Down Expand Up @@ -8804,14 +8805,15 @@ QString DicomUtils::read_buffer(
QVariant(image_buffer_length).toString() +
QString("\nbut must be\n") +
QVariant(dimx * dimy * dimz * type_size * samples_per_pix).toString();
if (not_rescaled_buffer) delete [] not_rescaled_buffer;
if (rescaled_buffer) delete [] rescaled_buffer;
if (not_rescaled_buffer) delete [] not_rescaled_buffer;
if (rescaled_buffer) delete [] rescaled_buffer;
if (icc_profile) delete [] icc_profile;
if (elscint && !elscf.isEmpty()) QFile::remove(elscf);
return tmp_s0;
}
if (icc_size > 0 && icc_profile && type_size == 1 && samples_per_pix == 3)
{
#if 1
#ifndef NDEBUG
std::cout << "Using ICC profile" << std::endl;
#endif
char * icc_buffer;
Expand All @@ -8822,8 +8824,9 @@ QString DicomUtils::read_buffer(
catch (const std::bad_alloc &)
{
icc_buffer = NULL;
if (not_rescaled_buffer) delete [] not_rescaled_buffer;
if (rescaled_buffer) delete [] rescaled_buffer;
if (not_rescaled_buffer) delete [] not_rescaled_buffer;
if (rescaled_buffer) delete [] rescaled_buffer;
if (icc_profile) delete [] icc_profile;
if (elscint && !elscf.isEmpty()) QFile::remove(elscf);
return QString("Memory allocation error");
}
Expand All @@ -8836,9 +8839,10 @@ QString DicomUtils::read_buffer(
}
catch (const std::bad_alloc &)
{
if (not_rescaled_buffer) delete [] not_rescaled_buffer;
if (rescaled_buffer) delete [] rescaled_buffer;
if (icc_buffer) delete [] icc_buffer;
if (not_rescaled_buffer) delete [] not_rescaled_buffer;
if (rescaled_buffer) delete [] rescaled_buffer;
if (icc_buffer) delete [] icc_buffer;
if (icc_profile) delete [] icc_profile;
if (elscint && !elscf.isEmpty()) QFile::remove(elscf);
return QString("Memory allocation error");
}
Expand Down Expand Up @@ -8910,6 +8914,7 @@ QString DicomUtils::read_buffer(
else // should never reach
{
if (rescaled_buffer) delete [] rescaled_buffer;
if (icc_profile) delete [] icc_profile;
if (elscint && !elscf.isEmpty()) QFile::remove(elscf);
return QString("Internal error");
}
Expand Down Expand Up @@ -8938,16 +8943,18 @@ QString DicomUtils::read_buffer(
}
else
{
if (not_rescaled_buffer) delete [] not_rescaled_buffer;
if (rescaled_buffer) delete [] rescaled_buffer;
if (singlebit_buffer) delete [] singlebit_buffer;
if (not_rescaled_buffer) delete [] not_rescaled_buffer;
if (rescaled_buffer) delete [] rescaled_buffer;
if (singlebit_buffer) delete [] singlebit_buffer;
if (icc_profile) delete [] icc_profile;
if (elscint && !elscf.isEmpty()) QFile::remove(elscf);
return QString("Memory allocation error");
}
}
if (not_rescaled_buffer) delete [] not_rescaled_buffer;
if (rescaled_buffer) delete [] rescaled_buffer;
if (singlebit_buffer) delete [] singlebit_buffer;
if (not_rescaled_buffer) delete [] not_rescaled_buffer;
if (rescaled_buffer) delete [] rescaled_buffer;
if (singlebit_buffer) delete [] singlebit_buffer;
if (icc_profile) delete [] icc_profile;
if (elscint && !elscf.isEmpty()) QFile::remove(elscf);
*ok = true;
return QString("");
Expand Down

0 comments on commit 6bb6286

Please sign in to comment.