Wikipedia talk:Graphic Lab/Resources/Wikimaps atlas

Latest comment: 10 years ago by Yug in topic Blog

Blog

edit

04/09: Shaded reliefs: which formats ?

edit

Whe use heavy GIS tif to generate shaded relief files, first as .tif, then converted into the format of our wish. We got a talk about which format to use out of .tif, .jpg, .gif, .png. There is the summary :

Shade reliefs: Formats ?
Format Opacity? Quality Compression/Weight
.tif No Yes heavy
.jpg No Yes Yes
.gif 0 OR 100% Yes Yes
.png 0 to 100% Yes heavy

The quality rather depends on the GIS raster, and our own crop and resizing choices.
The compression depends on the format's management of grey scale linear gradients, from white to black, which is the main component of native shaded reliefs.
The opacity support depends each format, and open different aesthetic possibility. Despite its poor management of linear gradients and subsequent heaviness, we will likely go for .png, which open better aesthetic possibilities. Yug (talk) 10:24, 11 April 2014 (UTC)Reply

04/11: Elegant Shaded relief

edit

Yug made a push and researches to integrate shaded_relief as one of the layers for the project. It's actually a very convenient layer, since we simply process the GIS raster into an elegant PNG raster, without the more complex use of topojson and D3js, as seen for other layers (administrative, topography). As for now, the result is a white-grey-black png as follow:

[input.png]

Past days, we started to a discussion with the French graphic lab, where talented and experienced wikicartographers gather. Shaded relief is described as an ambiguous layer. Commonly used "as it" with its grey base-color (#DDDDDD) for plains, black for mountain's shadows, and white for the enlighten sides, the whole at an opacity of ~30%, which, yet, heavily darken the map. Smarter usage require whitening, or transparency, which are done via GIMP as follow:

Color to transparency. Play me full screen !
Grey/White to transparency
  1. GIMP 2.6 > Load your shaded relief image (....shaded.tif : are grayscale)
    or a screenshoot of your shaded relief (screenshot : RGB colors)
  2. Force it to be RGB: Gimp > Image > Mode > RGB, click.
  3. Delete the grey : Colors > "color to alpha" pop up > uncheck "preview", click on the horizontal color rectangle > "Color to alpha color picker" pop up> bottom right corner, click on the icon eyes dropper > choice you color of to delete (some grey pixel in a flat plain) > validate.
  4. Delete an other color (white, black background) > same.
  5. File > save as > ProjectName_relief_whitened.png (to keep transparency)

We have to reproduce this exact behavior using a command/script approach. The best lead we currently have is $convert, a sublibrary of ImageMagick. Planemad, who have a better understanding of bitmaps, bitmap chanels, and raster processing jumped in to solve this issue. Yug (talk) 07:35, 11 April 2014 (UTC)Reply

04/11: Shaded relief, last try

edit

As I researched for over one day without clear solution or lead, I accepted to leave this issue to Planemad, who have some expertise in alpha chanel manipulation, and may have a smoother navigation and research within this field. Gathering my elegantshades.makefile trial, associated poor quality outputs, and relevant online documentations, I noticed a tiny keyword[1] :

$convert input.png -alpha '''Copy''' output.png
- Turns 'On' the alpha/matte channel, then copies the gray-scale intensity of the image, into the alpha channel, converting a gray-scale mask into a transparent shaped mask ready to be colored appropriately. The color channels are not modified.

This totally hooked me. So I went for a quest with my best friend: Google: Imagemagick convert alpha copy.

And there it is, unexpected, a full forum thread about Convert grayscale image to black plus transparency?. There is the gold out of it:

1a. To make black pixels of this image transparent and linearly keep the white pixels as they are, run this command:

convert source.png -alpha copy -fx '#fff' result.png

1b. To make white pixels transparent and linearly keep the black as they are, use:

convert source.png -alpha copy -channel alpha -negate +channel result.png

Manual:

  • convert – is the ImageMagic command (one of several)
  • source.png – is the greyscale source image.
  • -alpha copy – it copy contents of the previous file into the alpha channel.
  • -channel alpha – it specify that following operators only should affect the alpha channel.
  • -negate – it invert the current channel (channel alpha).
  • +channel – Specify that following operators only affect the opposite channel. For us, it switch focus from the alpha channel, to the color channel. (color channel is initially the default)
  • -fx '#000' – Replace current channel (for us, the color channel) contents with black pixels, so the end result actually fully depends on the alpha channel. If not included, all semi-transparent pixels in generated image will retain colors, from #FFF (white) to #000 (black).

The result is pretty elegant.

References

[1]: http://www.imagemagick.org/script/command-line-options.php#alpha

--Yug (talk) 19:22, 11 April 2014 (UTC)Reply