Win2000 and older: Ugly dimmed icons

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: white, Hacker, petermad, Stefan2

Post Reply
User avatar
MarcinW
Power Member
Power Member
Posts: 852
Joined: 2012-01-23, 15:58 UTC
Location: Poland

Win2000 and older: Ugly dimmed icons

Post by *MarcinW »

I'm not 100% sure if this is a bug, not by design, but:

Why do dimmed icons look so ugly on Windows 2000 and older? They are neither darker (which can be observed when using dark TC background color, for example blue) nor similar to icons shown in the Explorer (icons in the Explorer look nice, in TC are frayed)...
User avatar
Dalai
Power Member
Power Member
Posts: 9387
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

I don't think it's by design. Probably some API functions are not available or Win2k doesn't fully support transparency, Alpha blending or 32 bit colors (for the tray icons it doesn't).

I don't see any advantage of using the new dimmed icons on Win2k, so I'd recommend to set IconLib=%COMMANDER_EXE% in wincmd.ini. And I wouldn't bother to put any extra effort into these old systems, even less when there are workarounds available.

Regards
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
MarcinW
Power Member
Power Member
Posts: 852
Joined: 2012-01-23, 15:58 UTC
Location: Poland

Post by *MarcinW »

There must be some easy way of doing this, since Explorer uses it:

Code: Select all

MIME-Version: 1.0
Content-Type: application/octet-stream; name="tc_vs_explorer.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="tc_vs_explorer.png"

iVBORw0KGgoAAAANSUhEUgAAAjIAAACWCAMAAADzAJK6AAAAK3RFWHRDcmVhdGlvbiBUaW1lAFNv
IDEzIHNpZSAyMDE2IDEzOjE5OjU1ICswMTAw6jR8YgAAAAd0SU1FB+AIDQsWBXgtjIcAAAAJcEhZ
cwAACxIAAAsSAdLdfvwAAAAEZ0FNQQAAsY8L/GEFAAAAxlBMVEUQAADOzsb///+EhIRCQkIAAITG
xkL//3sAAAC9vb29QjmlMTGEhADWUlLOKTGlKSnWY2u9OTnec2vWWlr//wDOQkKUKSnOOUqcISnO
QkqlISnWQlLWSlLWUlqtISkIIWvWWmO1ISnec3PWY2Nra2PGxsatraXn596trWPn52M5OTkxMTFz
c3Nra2tjY2NaWlpSUlJ7e3tKSkqMjIyUlJScnJylpaWcnADOzmOtra3//87/zpz//5y1tbXOzs73
9/fe3t7n5+eR6tFYAAAN5ElEQVR42u2dCWPbuBGFl0TSBVtXvdz7cLuVr8ahs4qTbOJI6/z/P1Uc
BDG4eJMgqHmyZJ42BH56MwBJ6LvvhLI8ywh7SpHqVT4ckfqVyK3ADpl/B6K2Ixl8Df1x4t2Sv/Iy
5v2VoSbTd23IeA6rgQzAJIgM2M56DfzxZmRQUdWOjHtYCZf8pVbLBfUyZw/9rPfNAoAR42/BuQyR
WYO8yPQR8U7OJl5GgppTbRj4XUYoTAlcrTcjzds3/kln40ZkrlAzyocMPB6jXWZhITKz65yQyfNw
NYRXoSydHzIOHXyBWlWtrCdQrjQGFJHR65CYsBQGVDwMZChX+shIxxAMVC95bSNqWq9Cl2lVjQHD
Q00SvchEJnbzrl0KmapT98rwkCtjAXvWP2grPZRrYGpoCMDIQGb9ql1GEWOyoHGxvQeZ6awml+EL
kw1MuZ2eqBloO0bqG/tQpKKGXEYsThaZKxCMNA5VHHIDEzLTWam2mEKFaUx/zch0pazItBlEp0Wp
9suYhdHnELD3d3ZtARlC8pfT8VASRGYJpYCM7zwkKAwDpmDAHI8lRWQW0FBkaDalGk9hs8b9t9OR
2gv11OlwKIsjORLGzMCr8lA91HIwA8gQeAQpeA6jqemyB7Ovrm7VgSsxjodCEHOskIndn3jm8iND
8qmRabj6xiDcQYYURcmIOTARUkpkYn8MW9RaviFvgLxaRu0e7r/EKn+hkihqIVP3IsuewWo2DBGA
sxGZA3u+nF5OJx8ynBhyOhGqkOnP7KJqTQqHZI2EHcyFHi3yIcOIqVTFCap6Ai2C1PEFyFCTIOJl
xpjlyDAL4f/zpFMaXRhCODEvDClCzxqZhXgZhAxln2wCXAYgU+MiyPBFKtNzIDJGs5nkGlBOzOEg
iPEg8+1beTycGDEvxXkjs2aXYcwQWknO6/MNFShquX6tZcxCYmBZwJwMTNJjTl5kTiVD5sVEpoqL
0x/vCSTKTmk4YvMN9DoR3L0zetniLuMrerXMn/5SYu5hJL9WYGo+bFXuZhED7a9C5sQ95uhrMbEV
LDAxYhjHABm6dmSyYAEdZEBNu8jIectlJJDzuQylTtGakbGLDeJRtbJj+qvqiIRb+xyZFxGaDn5k
CF/MYyUtN4RMpt6Ac1j8O0mXUZxQyl5nYUYiQ6mn/M3ITN2V19A/RPJcRaWjr1+GB7ey4O/hRGBg
UpVLVQtOLqgWdwF5LlnIwAJaG5jPasp8Yyo5lC5DBSsz0QJchhqWUJdKLF3ohEHDnyYVMRwYLzKs
qCUXfTgRDzIZcFFQ4RE9yMxltJM0IgN5gftVPz6X0fGpilJTxKrMjzMoYvxzTNQUrFVzmyx7OMH0
V38SYLik7od6aZkuUyMDrnGrP8m67BT4ZA2Y3jfsMnoJm5rEfVaPTEO1O4K5DMhnwFHRNR/dZTK3
6o03ZyMj36HtMtWEcBm1g3aZOqsRLOmlo12G0o0gkwWRAcHIn1cuXXYbGaODU7dKYEw1Q6sTmDLQ
TqrdpM6DLZJGUWMXyqzqtSITktsvo2zF+FisKDDZ+XnmR8ZIf2EGX6e/vhaTZKRymHp+rMsYkdGu
6WSRWbPm7P3V7lLnvRTOTdRisgU/fknexxSbibFEpHaOyTTsJO9jis3EWCI2eI6psejoMq1VtDWX
MdUfmYUu9QldAJTFpvbsNQCZ6T+WPZRHp/bslSYyr1HxNAyZT1xRuj0QmegahMynn798+fo1CjOI
THQ1IRO4biP79JOU8JpPK0CmLGNX4znJg0zdbxNE5ovW15+crWY1Hx8yZVEgM8tpGDJfaz3XyIAr
hZuvB54amfL6ujg+xq7I85GLDNX3EKjbCsDZMQOZZ/ZQyGgqFkamPF0XxfEzMrOUQshU14PrKa/L
PNcuA51JX5cALwacCZnyxJA5Hj9/RGYWUgsymXnW3kDmGbqMjUyWdb8LYQwyLCoJYj5//PAudl2e
iRxk1GVtGhkFgxOYnj0uo6GDrM2GDM9jJDEfPyAzy8hFJgOwaLOoj7tCRnrMcxMymrW5kCn5/dqc
GI7M0xMys4RCyGS118C8RCHzXBPzbKW/TmDKjExoWmRKBYwwmaf37w+xq/McNKT3V3XlSZmNbE2c
lQPPgEwpWPkokGHA8LOskBnmQN7pVYmPa1HIiWqmaNla/3qtXut9rPXebUJLWv+5UiCXCR9hfsLA
exsJ0IydeQCZklvLh49ST9WZeZAZG+9/vcjURwxMNG9c/zJ3tNcDMLos6VxLs5zJXgaZRylBzIf3
RNyi+yolZBxc7IMZ2Mmky/BSG5l+E90qKfmLH94JYlhYcvKYtSNjHvUgB+5eEyIDA9w5IfPhQ4rI
gKOlkamDRKi8ProKeMjV37HeeLclnQreH5moxPiQ4cQ8kdSQgYfJ5SBUYE/aozMbN9d53dlurPnC
eI5EZg13GBjIcGCYyfzoXESzbmT8LmMub9jHjWqQnkG5TNcqgsgkIBeZg+iQSRAZj2O05TImGT2Q
6bJkCDKx71Ea5jKHJ0mMH5kuTdeozFj9MvbBtHeQW0/XL2P+nd7IxHaQgS7DkSEcmVev/idkVo1v
BjVGEJnYdzt0kAeZ96Lb90eph4e3b9SaJHp/E5SBTNzG0LAW0+F9BczDgyCmfDO4LlCdlDwyrxQw
Qm9LRGZudULGm1UM041H45BRwLxlKsvHR0RmZnVDxm26kIHnkW5uHd3sRyGjYOF6fHz3DpGZWYOR
GciMD5k+zHiQqYCRJynfocvMrcHIXA9jxodM1oMZ9w4D1bh+oxS7Sreuwcjkw5jxIXPbgxm8wTa6
hiMzjBkvMj2YQWSia3j6O2zMS2/6K4TIJKKhyAhdT4KMUIbIpKKEkfH1FsWuznNQT2TIdMjcjEbG
Fy5j1+cZqA8yJKfiMQEyN7d78ZgaGWRmfvVAhlxTnvUCZgYjc5PtedYLmJkImQKZmV09kKG58Jjr
CZDZ3wqPySZHJkdmZld3ZAgVFiNeRyJzsxcWI14nRgaZmV3dkaHXufhehTwfjcw+Y0+By9TIyN6i
2JW6bfVAhlD+KWaRiShqBiNzs+cNJhaZbhQ10yAjVCAys6pPLnNNWJvpQkSnSzoul8luWJvpTkSn
+z0ik5R6uAy3fUIvLxg3lxejkBHNpZv9/R3j5v5uPDIEkVlQfVyG20vlMrlIaoa7DLeXymVuRVIz
HBmntwiRmVc9e3/pxaXIgaXNjOr93d/dixxY2sxgZEhh9xYhMvOqNzL0MmcPOgUy+/tb9tiPQ6bq
LSo6I5Pe7SnwPv2VDUnU5bQkS2MuuNeMS38lM/d3d9xrRuUynt4ihYzz/u1BERKReVfjuoYk6uIy
LCKx5hK9mMBlWERizaX93SiXoYXTW9SITIIuY95xu64hiTq5DOXBSWa/Y11mz4OTzH6HI6N6i4q6
t0gjU0CrVrdMLoJMYRy9cf9xTmQahiQK+vGA62VoHQNGXy+zr88YDM9lCru3CLqMrkSnfuYlxv6Z
CplFhyTylzvlS6wCvUUmMmCEgwUDk/p/DcM4DEJmuSGJKhQ9oxKljoynt8h2GWtmmVwGHL2x/9HK
bxcakigMe/LIuL1FqwlMRkYzBTJLDkm0eWRgb1HdL2OnvwsOTgSDwuhmPRhzccEhiYLdNJtAxuwt
Wk/vb3Lt+U7qhsx1QAOQCa0Y5TJGb9FakEmv07CbOiFDg+qNzD6oUS4De4vWgsxWlfCQRKHeIkRm
Xm0GGS1EZl4hMqieQmRQPbUIMld9hcisWIgMqqdSRqYICJGZVU3IUN/skNHOrq5yEwkxywxhFDLh
3qLYlbpt9UVm0PeKepFRz8HIoOKoERn4DbRUTcG16iuOW0CqHEXaCn9VBlMhIxbJWbmmDZlffI+P
aI82l9FfsW4FJpqZa9tdRj5ziAoMU3ptOzLfc9o9mS/JY38Ez0CtyMivWNf+or8WO1O8tAarCohc
GkzNigpLecVMribbXYYXnSAzUdTFZSpC7PRXfpN6lwzHTFxy02oUNGppl8AUdhlkZnZ1C0wg/lgx
ioIw1Skw1fHHCE7WgsEugz4zvxr7Zer0V+XAmc6BKdXZTFtkUj4Cc+AqTumUVwWvcbkMMjO7Rnbl
dWtyd+q+gw3uwS4j7+iPXanbVprIOC7zw38hN7ErddtK84SB7TI/7Ha/0+eY0GVmVZrI2C7z793u
P+gyCynN62Vsl/nnbvcvdJmFlCYy0GUK9vzHbvc3dJmFlCYywGXEReJ/h8g0u0ySA8zEG5LIU1lp
IqNdhoix8v7qc5nAkETJ3ZEWdUiizSADXIbHpfzPu91fHJcJjn2RLDLV3JJDEm0GGe0yvOeO5H/c
7f7kcRnvkESLILOZIYk80SpNZIxchv/+5a/41KXjMp6RH5YhZitDEhVu8dNEBroMqUf9vax+45BE
Uw5JBP5WyshYLSaaX1TcUI/LmDMLJTJbGZLIw3yayNi9vxcVLReuy1iBaRlitjMk0WaQsXp/af77
P6hcGPTL+IYk6jwg8lhmNjIk0WaQsV3mt+K05IWZy8RXYq35jkoTGfsc0693u99UGc16zjGl183c
TWki41wvwxrZKp9ZkctsU2ki47kqT39XylpcZqtKE5nQtb94JnsBpYlMwx0G6DJzK01k0GUiKk1k
0GUiKk1k0GUiKk1kKpcpAo/YlbptpYmMdBkaesSu1G0rTWSij7Fyzo80kYn9QTtrITKonkJkUD2F
yKB6CpFB9RQig+opRAbVU4gMqqcQGVRPITKonkJkUD2FyKB66v+7VaomdQLiTwAAAABJRU5ErkJg
gg==
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48077
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Total Commander draws dimmed icons with
ImageList_DrawEx(...,CLR_NONE,RGB(255,255,255),
ILD_NORMAL | ILD_BLEND50);

Apparently ILD_BLEND50 was implemented differently on older Windows versions, probably for working with 16 color and 256 color palette display adapters: It seems to draw a checkerboard of the actual image and the RGB value to get the effect.

Any idea how to enhance that?
Author of Total Commander
https://www.ghisler.com
User avatar
MarcinW
Power Member
Power Member
Posts: 852
Joined: 2012-01-23, 15:58 UTC
Location: Poland

Post by *MarcinW »

I think I have a piece of code that might help. I will search for it.
User avatar
MarcinW
Power Member
Power Member
Posts: 852
Joined: 2012-01-23, 15:58 UTC
Location: Poland

Post by *MarcinW »

I made a research and the ability of drawing nice dimmed icons (without dithering) depends on two factors:
1) version of the COMCTL32.DLL library,
2) parameter given to the ImageList_Create API call (like ILC_COLORDDB, ILC_COLOR8 or ILC_COLOR32).

ad 1) Different COMCTL32.DLL versions come with different Windows and/or Internet Explorer versions (see here).

ad 2) All COMCTL32.DLL versions support up to 32-bit image color depth for image lists. But when painting with the ILD_BLEND50 parameter, painting - without dithering - is possible:
- for oldest COMCTL32.DLL versions (like in Windows 95): only for ILC_COLOR4 and ILC_COLOR8 image lists,
- for some more recent COMCTL32.DLL versions (like in Windows 2000): only for ILC_COLOR4, ILC_COLOR8 and ILC_COLOR16 image lists,
- for COMCTL32.DLL version 6.0 and above (like in Windows XP with manifested EXE): for ILC_COLOR4, ILC_COLOR8, ILC_COLOR16 and ILC_COLOR32 image lists.

Interestingly, ILC_COLOR24 image lists seem to not support blending without dithering at all.


The obvious result of having an 8-bit image list (ILC_COLOR8) is that high-color images look very ugly - regardless of using blending or not. Also a 16-bit image list doesn't give perfect results for true-color images.

So I think that the best solution would be:
- to use a standard image list painting function, like ImageList_DrawEx, when using COMCTL32.DLL version 6 or above; this solution will be compatible with any future Windows enhancements for image lists and will guarantee that painted images will be consistent with the Explorer,
- to use a custom painting function for older COMCTL32.DLL versions, that will handle blending for all image bit depths and without dithering.

Would be such a solution acceptable? If so, I think I could provide a function that will paint with blending.

Regards
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48077
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Thanks for your research! Currently I'm using a third solution: Just DISABLE blending on these old systems by default. TC 8.x didn't use blending, so when we keep it disabled, it will not disturb anyone...
Author of Total Commander
https://www.ghisler.com
Post Reply