diff --git a/SlnkDWFCom/ImageConvert.cpp b/SlnkDWFCom/ImageConvert.cpp index 9cc9293..57ba960 100644 --- a/SlnkDWFCom/ImageConvert.cpp +++ b/SlnkDWFCom/ImageConvert.cpp @@ -168,9 +168,14 @@ STDMETHODIMP CImageConvert::SaveAs(BSTR IMGPath) } // mode 1 for fast (nearest pixel) method, or 2 for accurate (bicubic spline interpolation) method. - if (!m_image.Resample(m_width, m_height, /*mode*/ 2)) - return myAtlReportError (GetObjectCLSID(), "Error resizing to w=%d, h=%d\n%s", - m_height, m_width, m_image.GetLastError()); +// if (!m_image.Resample(m_width, m_height, /*mode*/ 2)) +// return myAtlReportError (GetObjectCLSID(), "Error resizing to w=%d, h=%d\n%s", +// m_height, m_width, m_image.GetLastError()); + + // Die IM_GAUSSIAN wordt alleen gebruikt bij vergroten wat wij nooit doen eigenlijk + if (!m_image.Resample2(m_width, m_height, /*mode*/ CxImage::IM_GAUSSIAN)) + return myAtlReportError(GetObjectCLSID(), "Error resizing to w=%d, h=%d\n%s", + m_height, m_width, m_image.GetLastError()); } CString fileout(IMGPath); diff --git a/SlnkDWFCom/SLNKDWF.idl b/SlnkDWFCom/SLNKDWF.idl index fe04954..283406b 100644 --- a/SlnkDWFCom/SLNKDWF.idl +++ b/SlnkDWFCom/SLNKDWF.idl @@ -75,6 +75,8 @@ interface IWhipFile : IDispatch{ [propget, id(32), helpstring("property UnmatchedLabels")] HRESULT UnmatchedLabels([out, retval] BSTR* pUnmatched); [propget, id(33), helpstring("property flags")] HRESULT flags([out, retval] LONG* pVal); [propput, id(33), helpstring("property flags")] HRESULT flags([in] LONG newVal); + [propget, id(34), helpstring("property forcePlanColor")] HRESULT forcePlanColor([out, retval] LONG* pVal); + [propput, id(34), helpstring("property forcePlanColor")] HRESULT forcePlanColor([in] LONG newVal); }; [ object, diff --git a/SlnkDWFCom/SLNKDWFVersion.h b/SlnkDWFCom/SLNKDWFVersion.h index c918579..8feeb07 100644 --- a/SlnkDWFCom/SLNKDWFVersion.h +++ b/SlnkDWFCom/SLNKDWFVersion.h @@ -1,6 +1,6 @@ // Zorg dat versies alfabetisch altijd op elkaar volgen! #define SLNK_MAJOR_VERSION 4 -#define SLNK_MINOR_VERSION 30 +#define SLNK_MINOR_VERSION 40 #define SLNK_BUILD_VERSION 0 // Define resource strings diff --git a/SlnkDWFCom/WhipFile.cpp b/SlnkDWFCom/WhipFile.cpp index b182e72..d65a9d4 100644 --- a/SlnkDWFCom/WhipFile.cpp +++ b/SlnkDWFCom/WhipFile.cpp @@ -91,6 +91,7 @@ CWhipFile::CWhipFile() m_vdpi = 0; m_builder_len = 0; m_flags = 0; + m_forcePlan = FALSE; // Predefine fixed symbols // Merk op dat m_contunits hier nog gewoon de default identity matrix is @@ -820,6 +821,14 @@ HRESULT CWhipFile::SerializePlan(WT_File & my_plan_file, myWT_File & my_file, do CString last_layer; m_activeLayerName = ""; // reset + WT_Color planclr(m_forcePlanColor >> 16, (m_forcePlanColor & 0xff00) >> 8, m_forcePlanColor & 0xff); + + if (m_forcePlan) // plattegrond grijzig maken + { + my_file.desired_rendition().color() = my_file.rendition().color() = planclr; + planclr.serialize(my_file); + } + while ((result = my_plan_file.process_next_object()) == WT_Result::Success) { switch(my_plan_file.current_object()->object_type()) @@ -831,6 +840,11 @@ HRESULT CWhipFile::SerializePlan(WT_File & my_plan_file, myWT_File & my_file, do GenerateContouren(my_plan_file, my_file, scale, true); // Alle 'solid' kleuren comment(my_file, "== Contouren end (solid=true)"); firstDrawable = false; + if (m_forcePlan) // plattegrond (opnieuw) grijzig maken + { + my_file.desired_rendition().color() = my_file.rendition().color() = planclr; + planclr.serialize(my_file); + } } if (my_plan_file.current_object()->object_id() == WT_Object::Origin_ID && !my_file.heuristics().allow_binary_data() @@ -886,7 +900,8 @@ HRESULT CWhipFile::SerializePlan(WT_File & my_plan_file, myWT_File & my_file, do } case WT_Object::Color_ID: { - my_file.desired_rendition().color() = *((WT_Color *)obj); + if (!m_forcePlan) // gewoon originele kleur + my_file.desired_rendition().color() = *((WT_Color *)obj); break; } case WT_Object::Font_ID: @@ -1728,3 +1743,18 @@ STDMETHODIMP CWhipFile::get_UnmatchedLabels(BSTR* pUnmatched) (*pUnmatched) = result.AllocSysString(); return S_OK; } + +STDMETHODIMP CWhipFile::get_forcePlanColor(LONG* pVal) +{ + (*pVal) = m_forcePlanColor; + + return S_OK; +} + +STDMETHODIMP CWhipFile::put_forcePlanColor(LONG newVal) +{ + m_forcePlanColor = newVal; + m_forcePlan = TRUE; + + return S_OK; +} diff --git a/SlnkDWFCom/WhipFile.h b/SlnkDWFCom/WhipFile.h index 8c943ac..f1a7372 100644 --- a/SlnkDWFCom/WhipFile.h +++ b/SlnkDWFCom/WhipFile.h @@ -92,6 +92,7 @@ private: myWT_File m_W2DFile; long m_vdpi; WT_View m_view; // Initial view + COLORREF m_forcePlanColor; BOOL m_forcePlan; WT_Logical_Point m_builder[MAX_BUILDER+1]; // om lijnstukken aan elkaar te plakken. 1000 lijkt me genoeg int m_builder_len; @@ -132,6 +133,8 @@ public: STDMETHOD(put_flags)(LONG newVal); STDMETHOD(get_vectorDpi)(LONG* pVal); STDMETHOD(get_DwgLimits)(IBoundingBox** pVal); + STDMETHOD(get_forcePlanColor)(LONG* pVal); + STDMETHOD(put_forcePlanColor)(LONG newVal); // Voorheen WhipFileState public: diff --git a/historie.txt b/historie.txt index 218e346..4c71d9f 100644 --- a/historie.txt +++ b/historie.txt @@ -1,6 +1,11 @@ +V4.30 23-08-2022 + - Visual Studio 2022 + - SZDB#82496 plaatjes verkleinen met Resample2 ipv. Resample + - CIZN#82871 tekeningen met zwarte lijnen forceren (whipfile.forcePlanColor) + V4.30 23-08-2022 ZLMV#78395 Whip2DC ook correctie voor niet orthogonale Units - Whip2PNG.flags en Whipfile.flags ingevoerd. Bitje +1 om bovenstaande te activeren + Whip2PNG.flags en Whipfile.flags ingevoerd. Whip2PNG.flags bitje +1 om bovenstaande te activeren V4.29 30-01-2023 BLOS#76236 ArchiCad - ook Whip2DC z-coördinaat correctie van LUDE#30224 laten doen diff --git a/signDLL.bat b/signDLL.bat new file mode 100644 index 0000000..e42d3f3 --- /dev/null +++ b/signDLL.bat @@ -0,0 +1,6 @@ +if x%2==x GOTO bad +"c:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe" sign /fd sha256 /f ".\code_sign_aareonnl.pfx" /p %1 /d "Facilitor SLNKDWF" /du https://aareon.nl /t http://timestamp.digicert.com %2 +GOTO end +:bad +ECHO Usage: %0 wachtwoord arxfile +:end \ No newline at end of file