OC cache resizing cripples colours - bad color management
Posted: Thu May 29, 2014 5:27 pm
THIS PROBABLY HAPPENS TO YOU ALL WITHOUT EVEN KNOWING IT - OC MAKES YOUR PRODUCT IMAGES LOOK UGLY AND DULL ON MANY CUSTOMER'S MONITORS... SO READ ON
i honestly tried to google out solution but had no luck so i decided i have to ring the alarm myself... i already spent days trying to solve this serious problem but i had to turn to the community to help me on this one... its potentially affecting all OC users whether they notice it or not...
Ok many of us spend hours fine tuning the product photos in Photoshop and Lightroom… we tune colours, saturations, brightness, contrast, everything… we want our products to look their best… YOUR PRODUCT IMAGES SELL THE DAMN THING...
to make your products look and SELL the best... you have to do the fine-tuning of colours and saturation and contrast in reasonably color managed workflow using color profiles like AdobeRGB and sRGB… all printed graphics and photos rely on color profiles and color management to make sure the images you have in magazines will make you BUY THE PRODUCT...
when we are happy with the product images we upload them into 'public_html/image/data/Product/' everything is fine and than OPENCART takes these perfect photos we took hours finetuning (and saved with color profiles to retain perfect colors and saturation across monitors and devices) and OPENCART caching engine STRIPS AWAY the color profiles whenever it resizes an image (to thumbnail, image list, product image, etc)
i tested thoroughly and everytime OPENACRT takes a perfect jpg with sRGB profile included and resizes it into image cache repository (public_html/image/cache/data/) the resizing engine THROWS AWAY the sRGB profile and produces what is called Untagged RGB - these JPGs without color profile (aka Untagged RGB) are a horrid thing because every browser on every operating system and every platform renders them DIFFERENTLY so your perfect photos you took hours to fine tune now look
- DULL
- WASHED OUT COLOURS
- LACK CONTRAST
OPENCART MAKES YOUR PRODUCTS LOOK LIKE SH#T ON MANY MONITORS
STRIPPING AWAY RGB PROFILES WHEN RESIZING AND CACHING DESTROYS THE PUNCH OF ALL YOUR PRODUCT VISUALS
when opencart resizes while caching it doesnt change R G B values in the file, it doesnt recalculate pixel R G B values… all it does it takes a JPG with profile included (aka color managed) and resizes and THROWS AWAY THE RGB PROFILE (aka makes it look randomly on every monitor)
WHAT A STUPID BUG !!!
everyone who used photoshop for more than 1 day knows that without RGB profiles included in files there is no way that your images will look on customers screen the way you intended… there is a whole industry around color management and how to make same image look identical on multitude of monitors and devices around the globe - fashion photography and fashion magazines would be dead without color profiles - color profiles are an essential building block in digital photography, prepress, printing, graphic design… all is dependant on single thing - COLOR PROFILES
AND OPENCART THROWS THEM INTO TRASH WHENEVER IT RESIZES YOUR IMAGES… THAT IS EVERYTIME YOU LOAD A PAGE AND IN EVERY SINGLE THUMBNAIL OR PRODUCT SHOT YOU SEE...
it mercilessly throws away RGB profiles from all resized and cached images rendering them UGLY on 50% of monitors… for an e-comerce system where product image SELLS it means everything... this is serious BUG or OMISSION of standards…
NOW THE WIRDEST THING... OPENCART caching engine only discard the color profile when it has to resize the jpg while caching… say you have an original product JPG that you uploaded and it has physical dimensions 1080x720… if you set your 'Product Image Popup Size' - that is the full screen zoom box - to exactly 1080x720 than the cached image OPENCART generates DOES RETAIN sRGB profile (and looks milion miles better and juicier)… its because OPENCART did cache that file BUT without resizing it (it just moved the JPG image from 'public_html/image/data/Product/' into 'public_html/image/cache/data/' and changed its name (added '-1080x720.jpg' cache name sufix)...
TALK ABOUT DOUBLE STANDARDS... so some cached copies in 'public_html/image/cache/data/' do end up with RGB profiles and some dont... OC caching just behaves without any color management rules or standard in place...
only when OPENCART cache engine has to RESIZE dimensions of the image it DISCARDS the color profile...
i attached 3 files
1) biografiktion-1.jpg
this is original jpg with sRGB profile, as it was uploaded to 'public_html/image/data/Product/' - its physical dimensions are 1080x720
2) biografiktion-1-1080x720.jpg
this is a JPG thats cached when my 'Product Image Popup Size' MATCHES the original image physical dimensions (1080x720) - sRGB profile is retained even though OC makes a cache copy - it DOESNT RESIZE anything while creating the cached copy so the sRGB profile is retained in the cached copy... weird... but nonethless this image looks NICE AND SATURATED, JUICY IN MY BROWSER
3) biografiktion-1-1024x768.jpg
this is what happens when OC has to RESIZE while caching - this time i set 'Product Image Popup Size' box size to 1024x768 - while OC was caching AND RESIZING the original 1080x720 into a cached version of 1024x768 - the sRGB profile was discarded and this JPG is 'Untagged RGB' and looks ugly in many browsers… DULL, WASHED OUT, UGLY - DO I NEED TO REPEAT THAT IMAGES SELL YOUR PRODUCTS ON ESHOP
I ZIPPED ALL IMAGES SO THERE IS NO WAY THE JPGS CAN BE ALTERED BY BBS BOARD IMAGE ENGINE...
i dont have to tell you that RESIZING while caching takes place on all levels of OC (product thumbnails in category listing, additional product images in gallery, cart thumbnails, and the list goes on) - resizing while caching is a CORE function of OPENCART - all these resized images will look UGLY and WASHED OUT to many customers because the way OPENCART caching engine is setup it DISCARDS all color profiles from the cached JPG copies evertyime OC does a resize on an image...
THIS IS VERY SERIOUS PROBLEM and potentially makes all your products look UGLY and UNSELABLE or LESS DESIRABLE... and this HAPPENS TO EVERY SINGLE OPENCART WEBSITE AROUND THE GLOBE... although not to every browser - the display of "Untagged RGB" images varies vastly across operating systems and browsers... but you can be sure that great many customers see your products as DULL, WASHED OUT, UGLY UNSTAURATED PRODUCT VISUALS
i wish i could find a solution for this so far i came up with these:
1) is there a way to command OC to not discard color profiles when RESIZING while caching files ? any switch or javasrcipt to copy paste somewhere into the source files… this would be most elegant solution… to teach OC to retain RGB profiles whatever he does to the cache pictures - every cached image should retain an RGB profile of the original "mother" JPG that you upload to 'public_html/image/data/Product/' - this would be just best solution...
2) this is pretty weird solution but could work... manually create (pre-render) all cached images in photoshop with sRGB profiles and manually upload into 'public_html/image/cache/data/' - basically you would do all the resizing work MANUALLY in photoshop and retain all sRGB profiles and than upload these manually resized and named JPGs into the cache directory so OC would use them without knowing they were produced MANUALLY by human and not by the OC caching robot which discards profiles whenever it resizes… this solution seems ok, if a little laborious, but the problem is that the cache can be DELETED or REWRITEN randomly by OC at its own will… is there any way to DISABLE refreshing of cache in OC - basically command OC to never touch, replace or update images that are in the folder 'public_html/image/cache/data/'
3) there are also some ways to alter your browser to treat all 'Untagged RGB' images as sRGB images but you would have to set it up individually on every customers PC and depending largely on their Operating System and Browser - IMPOSSIBLE FEAT - you can tweak a browser to display 'Untagged RGB' the way it displays sRGB JPGs but to ask ALL your customers (who are often close to computer analphabets) is totally unrealistic and nobody would go through such technical process…
NOW I END UP WITH 50% OF CUSTOMERS SEEING DULL, UGLY, WASHED OUT IMAGES OF MY PRODUCTS
THIS PROBABLY HAPPENS TO YOU ALL WITHOUT EVEN KNOWING IT
THERE IS GOT TO BE A FIX TO MAKE OUR IMAGES LOOK THE SAME IN OPENCART AS THEY LOOK IN PHOTOSHOP… RGB PROFILES RETENTION IS THE ONLY PROFESSIONAL WAY...
p.s. attached are 3 test files that clearly demonstrate that OC takes an original JPG (1280x720) with sRGB profile included and while RESIZING (1024x768) to create a cached copy it discards the color profile... however the color profile is retained on a cached copy, which was cached BUT didnt have to go through the RESIZING process (1280x720)...
ALL FILES ARE ZIPPED TO PREVENT ANY ALTERATION TO JPG FILES BY BBS IMAGE ENGINE
i honestly tried to google out solution but had no luck so i decided i have to ring the alarm myself... i already spent days trying to solve this serious problem but i had to turn to the community to help me on this one... its potentially affecting all OC users whether they notice it or not...
Ok many of us spend hours fine tuning the product photos in Photoshop and Lightroom… we tune colours, saturations, brightness, contrast, everything… we want our products to look their best… YOUR PRODUCT IMAGES SELL THE DAMN THING...
to make your products look and SELL the best... you have to do the fine-tuning of colours and saturation and contrast in reasonably color managed workflow using color profiles like AdobeRGB and sRGB… all printed graphics and photos rely on color profiles and color management to make sure the images you have in magazines will make you BUY THE PRODUCT...
when we are happy with the product images we upload them into 'public_html/image/data/Product/' everything is fine and than OPENCART takes these perfect photos we took hours finetuning (and saved with color profiles to retain perfect colors and saturation across monitors and devices) and OPENCART caching engine STRIPS AWAY the color profiles whenever it resizes an image (to thumbnail, image list, product image, etc)
i tested thoroughly and everytime OPENACRT takes a perfect jpg with sRGB profile included and resizes it into image cache repository (public_html/image/cache/data/) the resizing engine THROWS AWAY the sRGB profile and produces what is called Untagged RGB - these JPGs without color profile (aka Untagged RGB) are a horrid thing because every browser on every operating system and every platform renders them DIFFERENTLY so your perfect photos you took hours to fine tune now look
- DULL
- WASHED OUT COLOURS
- LACK CONTRAST
OPENCART MAKES YOUR PRODUCTS LOOK LIKE SH#T ON MANY MONITORS
STRIPPING AWAY RGB PROFILES WHEN RESIZING AND CACHING DESTROYS THE PUNCH OF ALL YOUR PRODUCT VISUALS
when opencart resizes while caching it doesnt change R G B values in the file, it doesnt recalculate pixel R G B values… all it does it takes a JPG with profile included (aka color managed) and resizes and THROWS AWAY THE RGB PROFILE (aka makes it look randomly on every monitor)
WHAT A STUPID BUG !!!
everyone who used photoshop for more than 1 day knows that without RGB profiles included in files there is no way that your images will look on customers screen the way you intended… there is a whole industry around color management and how to make same image look identical on multitude of monitors and devices around the globe - fashion photography and fashion magazines would be dead without color profiles - color profiles are an essential building block in digital photography, prepress, printing, graphic design… all is dependant on single thing - COLOR PROFILES
AND OPENCART THROWS THEM INTO TRASH WHENEVER IT RESIZES YOUR IMAGES… THAT IS EVERYTIME YOU LOAD A PAGE AND IN EVERY SINGLE THUMBNAIL OR PRODUCT SHOT YOU SEE...
it mercilessly throws away RGB profiles from all resized and cached images rendering them UGLY on 50% of monitors… for an e-comerce system where product image SELLS it means everything... this is serious BUG or OMISSION of standards…
NOW THE WIRDEST THING... OPENCART caching engine only discard the color profile when it has to resize the jpg while caching… say you have an original product JPG that you uploaded and it has physical dimensions 1080x720… if you set your 'Product Image Popup Size' - that is the full screen zoom box - to exactly 1080x720 than the cached image OPENCART generates DOES RETAIN sRGB profile (and looks milion miles better and juicier)… its because OPENCART did cache that file BUT without resizing it (it just moved the JPG image from 'public_html/image/data/Product/' into 'public_html/image/cache/data/' and changed its name (added '-1080x720.jpg' cache name sufix)...
TALK ABOUT DOUBLE STANDARDS... so some cached copies in 'public_html/image/cache/data/' do end up with RGB profiles and some dont... OC caching just behaves without any color management rules or standard in place...
only when OPENCART cache engine has to RESIZE dimensions of the image it DISCARDS the color profile...
i attached 3 files
1) biografiktion-1.jpg
this is original jpg with sRGB profile, as it was uploaded to 'public_html/image/data/Product/' - its physical dimensions are 1080x720
2) biografiktion-1-1080x720.jpg
this is a JPG thats cached when my 'Product Image Popup Size' MATCHES the original image physical dimensions (1080x720) - sRGB profile is retained even though OC makes a cache copy - it DOESNT RESIZE anything while creating the cached copy so the sRGB profile is retained in the cached copy... weird... but nonethless this image looks NICE AND SATURATED, JUICY IN MY BROWSER
3) biografiktion-1-1024x768.jpg
this is what happens when OC has to RESIZE while caching - this time i set 'Product Image Popup Size' box size to 1024x768 - while OC was caching AND RESIZING the original 1080x720 into a cached version of 1024x768 - the sRGB profile was discarded and this JPG is 'Untagged RGB' and looks ugly in many browsers… DULL, WASHED OUT, UGLY - DO I NEED TO REPEAT THAT IMAGES SELL YOUR PRODUCTS ON ESHOP
I ZIPPED ALL IMAGES SO THERE IS NO WAY THE JPGS CAN BE ALTERED BY BBS BOARD IMAGE ENGINE...
i dont have to tell you that RESIZING while caching takes place on all levels of OC (product thumbnails in category listing, additional product images in gallery, cart thumbnails, and the list goes on) - resizing while caching is a CORE function of OPENCART - all these resized images will look UGLY and WASHED OUT to many customers because the way OPENCART caching engine is setup it DISCARDS all color profiles from the cached JPG copies evertyime OC does a resize on an image...
THIS IS VERY SERIOUS PROBLEM and potentially makes all your products look UGLY and UNSELABLE or LESS DESIRABLE... and this HAPPENS TO EVERY SINGLE OPENCART WEBSITE AROUND THE GLOBE... although not to every browser - the display of "Untagged RGB" images varies vastly across operating systems and browsers... but you can be sure that great many customers see your products as DULL, WASHED OUT, UGLY UNSTAURATED PRODUCT VISUALS
i wish i could find a solution for this so far i came up with these:
1) is there a way to command OC to not discard color profiles when RESIZING while caching files ? any switch or javasrcipt to copy paste somewhere into the source files… this would be most elegant solution… to teach OC to retain RGB profiles whatever he does to the cache pictures - every cached image should retain an RGB profile of the original "mother" JPG that you upload to 'public_html/image/data/Product/' - this would be just best solution...
2) this is pretty weird solution but could work... manually create (pre-render) all cached images in photoshop with sRGB profiles and manually upload into 'public_html/image/cache/data/' - basically you would do all the resizing work MANUALLY in photoshop and retain all sRGB profiles and than upload these manually resized and named JPGs into the cache directory so OC would use them without knowing they were produced MANUALLY by human and not by the OC caching robot which discards profiles whenever it resizes… this solution seems ok, if a little laborious, but the problem is that the cache can be DELETED or REWRITEN randomly by OC at its own will… is there any way to DISABLE refreshing of cache in OC - basically command OC to never touch, replace or update images that are in the folder 'public_html/image/cache/data/'
3) there are also some ways to alter your browser to treat all 'Untagged RGB' images as sRGB images but you would have to set it up individually on every customers PC and depending largely on their Operating System and Browser - IMPOSSIBLE FEAT - you can tweak a browser to display 'Untagged RGB' the way it displays sRGB JPGs but to ask ALL your customers (who are often close to computer analphabets) is totally unrealistic and nobody would go through such technical process…
NOW I END UP WITH 50% OF CUSTOMERS SEEING DULL, UGLY, WASHED OUT IMAGES OF MY PRODUCTS
THIS PROBABLY HAPPENS TO YOU ALL WITHOUT EVEN KNOWING IT
THERE IS GOT TO BE A FIX TO MAKE OUR IMAGES LOOK THE SAME IN OPENCART AS THEY LOOK IN PHOTOSHOP… RGB PROFILES RETENTION IS THE ONLY PROFESSIONAL WAY...
p.s. attached are 3 test files that clearly demonstrate that OC takes an original JPG (1280x720) with sRGB profile included and while RESIZING (1024x768) to create a cached copy it discards the color profile... however the color profile is retained on a cached copy, which was cached BUT didnt have to go through the RESIZING process (1280x720)...
ALL FILES ARE ZIPPED TO PREVENT ANY ALTERATION TO JPG FILES BY BBS IMAGE ENGINE