rizonesoft / Notepad3

Notepad like text editor based on the Scintilla source code. Notepad3 based on code from Notepad2 and MiniPath on code from metapath. Download Notepad3:
https://www.rizonesoft.com/downloads/notepad3/
Other
4.78k stars 322 forks source link

Epic: DPI Scaling issues #2081

Closed hpwamr closed 1 year ago

hpwamr commented 4 years ago

Maybe, bitmap toolbars sizes 48x48 or/and 64x64 are needed? 🤔

RaiKoHoff commented 4 years ago

Related issues: #463 , #563, #910 , #923 , #1544 , (#1686), #2066, #2245, #2303, #2403, #3150.

Other keys:

hpwamr commented 4 years ago

Hello @RaiKoHoff , Just a reflection on the "Toolbars" scaling. 🤔

Is it possible to work with "Vector" icon (like VSCode) instead of those "Raster" icon (.bmp) ? 🤔 With Scalable Vector icon, only ONE set will be required for all output sizes 32x32, 48x48, 64x64, etc...

A svg (Scalable Vector Graphics) file is a vector image file format. A vector image uses geometric forms such as points, lines, curves and shapes (polygons) to represent different parts of the image as discrete objects. These forms can be individually edited. A vector image remains crisp and clear at any resolution or size.

If this is not possible, I think the best solution is to start with a big "Vector" icon or big "Raster" icon, (preferably for a ".png" format: 256x256 or 512x512) to save multiple copies of "Raster" icon in ".bmp" format 32x32, 48x48, 64x64, etc...

Bitmap_VS_SVG svg This image illustrates the difference between bitmap and vector images. The bitmap image is composed of a fixed set of pixels, while the vector image is composed of a fixed set of shapes. In the picture, scaling the bitmap reveals the pixels while scaling the vector image preserves the shapes.

RaiKoHoff commented 4 years ago

@hpwamr : Thank you for your "reflection". Using Vector Graphics has been the suggestion of another guy too. Unfortunately, Notepad3's good old Toolbar engine does not support Vector Graphics. The best we could do (still using this engine) is to switch from Bitmaps to single Icon-Files for each button. Icons (.ico) are collections of bitmaps in different dimensions (16x16, 32x32, 48x48, 64x64, 128x128, 256x256). If the DPI scaling fits to exactly on of these bitmaps, you will get sharp buttons, if it is somewhere in between, you will still have the scaling problem ... 🤔 (I am not thinking about changing the toolbar engine to modern ribbons.)

rend3r commented 4 years ago

@RaiKoHoff

Using Vector Graphics has been the suggestion of another guy too

You can use svg as source for generating raster images in different resolutions. One source - many bitmaps (except really low res like 16x16, but it is not a problem - you have one already).

if it is somewhere in between, you will still have the scaling problem ...

I believe, it's only true for upscaling image. My precise eagle eyes (haha) tell me current toolbar engine using simple nearest-neighbor interpolation (pixelated buttons) for dpi scale option. Downscaling is less problematic and produce good results in most cases. So, 48->38 transfrom is preferable to 32->38 - downscaling is almost over preferable to upscaling.

rend3r commented 4 years ago

You can try to find suitable images https://www.gnome-look.org/browse/cat/132/order/latest/ here. I think, most of iconsets are under clean license.

blackcrack commented 4 years ago

https://www.pling.com/browse/cat/132/order/latest/

jeapp is a possibility, i have make also one : https://www.pling.com/p/1002417/ and https://www.pling.com/p/1002354/ if you support svgz

hpwamr commented 4 years ago

Hello @RaiKoHoff , With the latest updates, the quality of the Rizonesoft.com logo has degraded? 🤔 In addition, the information on the version of Notepad3 has become more bigger?

2020-05-23_175436