Opened 19 years ago

Closed 19 years ago

#1073 closed defect (fixed)

Mapserver-4.4.0-beta2 jpeg legend text rendering problem

Reported by: llo@… Owned by: warmerdam
Priority: normal Milestone:
Component: MapServer C Library Version: 4.4
Severity: normal Keywords:
Cc:

Description

Just found a new rendering problem in 4.4 beta2: Using imageformat jpeg, the
legend text is distorted, but using png or gif it's fine.

The problem can be reproduced using the legend executable.

A sample setup to reproduce the problem can be found on:
http://software-dkplan.carlbro.dk/ms_44b2_legend_error.tgz

Using a mapserver 4.0 with the same .map-file, the legend is rendered as 
expected with jpeg.

The mapserver was build with visual c++ 6.0 using :
  ECWSDK246_25Mar02.exe
  jpegsrc.v6b.tar.gz
  postgresql-7.4.1.tar.bz2
  mapserver-4.4.0-beta2.tar.gz
  libpng-1.2.7.tar.gz
  zlib-1.2.2.tar.gz
  curl-7.12.2.tar.gz
  proj-4.4.9.tar.gz
  ft219.zip
  xerces-c_2_6_0-windows_nt-msvc_60.zip
  gd-2.0.33-win32.zip
  zlib122dll.zip
  gdal-1.2.4.tar.tar

Regards Lars Loldrup


Frank Warmerdam's comments from mapserver-dev list:

>I did some inspection of the two result files.  If I directly translate
>the good png to JPEG I get essentially the same result you saw.  It looks
>like the problem is that the partial edge pixels of the text are drawn in
>pure black but with reduced alpha to get the antialiasing effect.
>However, when an RGBA image is saved in JPEG the alpha is just discarded
>and the text edge pixels come out pure black resulting in very blocky text.
>In some cases it is nearly unreadable text.
>
>This likely depends on particular combinations of rendering options. "

Change History (2)

comment:1 by fwarmerdam, 19 years ago

Status: newassigned

comment:2 by fwarmerdam, 19 years ago

Resolution: fixed
Status: assignedclosed
Lars,

The problem turns out to be your OUTPUTFORMAT declaration for jpg24. 

You were using TRANSPARENT ON and IMAGEMODE RGBA, but JPEG doesn't support
alpha.  Switching TRANSPARENT to OFF and IMAGEMODE to RGB things work fine.

I have altered the msOutputFormatValidate() function to automatically do 
this change, and to issue debug messages to make this less likely to occur. 
Note: See TracTickets for help on using tickets.