Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Anti-aliasing in v0.98 needs explanation #216

Open
athompso opened this issue Apr 18, 2019 · 4 comments
Open

Anti-aliasing in v0.98 needs explanation #216

athompso opened this issue Apr 18, 2019 · 4 comments

Comments

@athompso
Copy link

athompso commented Apr 18, 2019

From the 0.98 changelog:
Weathermap will use anti-aliasing if your GD supports it (php-bundled GD doesn't) (thanks shd)

I can see the changes to Weathermap.class to add transparent backgrounds to everything, which supposedly turns on GD's TTF anti-aliasing. I also see the boolean login added in commit 73450f7.

What I can't make any sense of is the "php-bundled GD doesn't" comment. It seems to directly contradict the PHP changelog for 7.2.0:
7.2.0 | imageantialias() is now generally available. Formerly it was only available if PHP was compiled with the bundled version of the GD library.

In general, anyone running a vaguely-modern version of PHP will get anti-aliasing, and was probably getting it to begin with.

Recommend either removing the confusing parenthetical caveat from the changelog, or expanding on it a bit so non-PHP-developers can understand whether they're getting anti-aliasing or not.

@howardjones
Copy link
Owner

There's plenty of PHP 7.1 and lower in the world still! I just checked CentOS 7, and it will currently install PHP 5.4 if you ask yum for PHP (+ years of redhat backported security patches, but still php 5.4).

The relationship between php, GD and various distros is not as simple as you would like. I haven't checked recently if Debian still use the actual gd package rather than PHP's own bundled gd. But if that's the case, then there is still a distinction, because the functionality is (AFAIK) still different.

I'll check into the current situation on a variety of OS. I'm far more concerned with answering "I enabled antialiasing and I'm not getting it" over and over, than removing a few words from the manual. Agreed that expanding it might be useful though.

It's not TTF antialiasing, it's line-drawing anti-aliasing, incidentally. freetype draws with antialiasing anyway.

Personally, I think it looks ugly, anyway :-)

@howardjones
Copy link
Owner

howardjones commented Apr 18, 2019

Yep, Debian still use libgd, not bundled: https://packages.debian.org/stretch/php7.0-gd

This is what I'm talking about:

To enable GD-support configure PHP --with-gd[=DIR] , where DIR is the GD base install directory. To use the recommended bundled version of the GD library, use the configure option --with-gd .

https://www.php.net/manual/en/image.installation.php

@athompso
Copy link
Author

Yep... my point was that since the assertion in the changes file is the logical opposite of what the PHP docs say, it leads to confusion. It certainly let to confusion by me - I'm using an older PHP (7.0), with the built-in GD, and antialiasing is working for me. I went down a rabbit hole this morning because of the caveat in the changelog, without thinking of zooming in enough to tell if it was antialiased or not...

BTW, I agree about ugly - small, rotated text is nearly illegible one of our maps [https://observium.merlin.mb.ca/weathermap/infrastructure.html].

@howardjones
Copy link
Owner

Again, imageantialias() is nothing to do with text, it affects line drawing - so links and nodes.

Freetype does its own antialiasing when rendering fonts. I'm pretty sure it always does it. It's also not great, especially at angles, at inter-character and inter-line spacing. That's been a problem for quite some time (if it still does it, since 2007 - I haven't checked in a while), and why I stopped trying to add cool text features. ("cool" like multi-line text). It partly depends on the font you use, but not completely. That's when I decided SVG would be a better place to spend some time, if I ever got it :-)

I will have a look at improving the manual. I think probably by expanding what check.php says about it, and referring to that, since check.php can actually look at your php installation, even if you don't know how it got there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants