From 8ae822241a841fbaccb912c8e7a138ed1c802ea1 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Tue, 19 Sep 2017 11:39:39 -0700 Subject: [PATCH] ScreenGrab updated to use non-sRGB metadataa for PNG --- DirectXTex/DirectXTexWIC.cpp | 3 +-- ScreenGrab/ScreenGrab.cpp | 14 ++++++++++++-- ScreenGrab/ScreenGrab12.cpp | 14 ++++++++++++-- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/DirectXTex/DirectXTexWIC.cpp b/DirectXTex/DirectXTexWIC.cpp index c049160..3132baf 100644 --- a/DirectXTex/DirectXTexWIC.cpp +++ b/DirectXTex/DirectXTexWIC.cpp @@ -599,13 +599,12 @@ namespace value.bVal = 0; (void)metawriter->SetMetadataByName(L"/sRGB/RenderingIntent", &value); } - // linear space. else { // add gAMA chunk with gamma 1.0 value.vt = VT_UI4; value.uintVal = 100000; // gama value * 100,000 -- i.e. gamma 1.0 - (void)metawriter->SetMetadataByName( L"/gAMA/ImageGamma", &value ); + (void)metawriter->SetMetadataByName(L"/gAMA/ImageGamma", &value); // remove sRGB chunk which is added by default. (void)metawriter->RemoveMetadataByName(L"/sRGB/RenderingIntent"); diff --git a/ScreenGrab/ScreenGrab.cpp b/ScreenGrab/ScreenGrab.cpp index b1e8c55..90be76a 100644 --- a/ScreenGrab/ScreenGrab.cpp +++ b/ScreenGrab/ScreenGrab.cpp @@ -1102,11 +1102,21 @@ HRESULT DirectX::SaveWICTextureToFile( _In_ ID3D11DeviceContext* pContext, (void)metawriter->SetMetadataByName( L"/tEXt/{str=Software}", &value ); // Set sRGB chunk - if ( sRGB ) + if (sRGB) { value.vt = VT_UI1; value.bVal = 0; - (void)metawriter->SetMetadataByName( L"/sRGB/RenderingIntent", &value ); + (void)metawriter->SetMetadataByName(L"/sRGB/RenderingIntent", &value); + } + else + { + // add gAMA chunk with gamma 1.0 + value.vt = VT_UI4; + value.uintVal = 100000; // gama value * 100,000 -- i.e. gamma 1.0 + (void)metawriter->SetMetadataByName(L"/gAMA/ImageGamma", &value); + + // remove sRGB chunk which is added by default. + (void)metawriter->RemoveMetadataByName(L"/sRGB/RenderingIntent"); } } else diff --git a/ScreenGrab/ScreenGrab12.cpp b/ScreenGrab/ScreenGrab12.cpp index 5fe8ea7..9e4cbd8 100644 --- a/ScreenGrab/ScreenGrab12.cpp +++ b/ScreenGrab/ScreenGrab12.cpp @@ -1202,11 +1202,21 @@ HRESULT DirectX::SaveWICTextureToFile( ID3D12CommandQueue* pCommandQ, (void)metawriter->SetMetadataByName( L"/tEXt/{str=Software}", &value ); // Set sRGB chunk - if ( sRGB ) + if (sRGB) { value.vt = VT_UI1; value.bVal = 0; - (void)metawriter->SetMetadataByName( L"/sRGB/RenderingIntent", &value ); + (void)metawriter->SetMetadataByName(L"/sRGB/RenderingIntent", &value); + } + else + { + // add gAMA chunk with gamma 1.0 + value.vt = VT_UI4; + value.uintVal = 100000; // gama value * 100,000 -- i.e. gamma 1.0 + (void)metawriter->SetMetadataByName(L"/gAMA/ImageGamma", &value); + + // remove sRGB chunk which is added by default. + (void)metawriter->RemoveMetadataByName(L"/sRGB/RenderingIntent"); } } else