[php-src] master: Sync gd 2 4 (#22532)

Pierre Joye via GitHub <[email protected]>
Newsgroups gmane.comp.php.cvs.general
Message-ID <[email protected]>
Author: Pierre Joye (pierrejoye)
Committer: GitHub (web-flow)
Pusher: pierrejoye
Date: 2026-07-16T21:46:18+07:00

Commit: https://github.com/php/php-src/commit/d826d4948324d50a6ae36b4fb8606061b866e54c
Raw diff: https://github.com/php/php-src/commit/d826d4948324d50a6ae36b4fb8606061b866e54c.diff

Sync gd 2 4 (#22532)

1st part of syncing bundled LibGd to ext/gd/libgd
# Updated/Fixed

- Color Match improvement using Lab* + Delta-E and actual % as input
- Fix and improve freetype rendering and merge both php's libgd + libgd "new encoding"
 -  Fix RAMQ rendering
- All codecs with conformance tests (upstream, C)
- Perceptual difference (upstream C, will be exposed so php's tests can rely on it
- libgd codecs include gif, bmp, webp and jxl full support including animation. Tiff read/write multipages. all BMP format supported but OS/2.

Many of these additions or changes work already with existing php's apis.

2D vector APIs and all new Codecs or Gd\* APIs will be a separe PR+RFC. See https://wiki.php.net/rfc/ext-gd-2.4

Changed paths:
  A  ext/gd/libgd/.clang-format
  A  ext/gd/libgd/entities.h
  A  ext/gd/libgd/ftraster/gd_ft_math.c
  A  ext/gd/libgd/ftraster/gd_ft_math.h
  A  ext/gd/libgd/ftraster/gd_ft_raster.c
  A  ext/gd/libgd/ftraster/gd_ft_raster.h
  A  ext/gd/libgd/ftraster/gd_ft_stroker.c
  A  ext/gd/libgd/ftraster/gd_ft_stroker.h
  A  ext/gd/libgd/ftraster/gd_ft_types.h
  A  ext/gd/libgd/gd_array.c
  A  ext/gd/libgd/gd_array.h
  A  ext/gd/libgd/gd_color.c
  A  ext/gd/libgd/gd_color.h
  A  ext/gd/libgd/gd_color_map.c
  A  ext/gd/libgd/gd_color_map.h
  A  ext/gd/libgd/gd_compositor.c
  A  ext/gd/libgd/gd_compositor.h
  A  ext/gd/libgd/gd_draw.c
  A  ext/gd/libgd/gd_draw_blend.c
  A  ext/gd/libgd/gd_draw_blend.h
  A  ext/gd/libgd/gd_filename.c
  A  ext/gd/libgd/gd_fixed.h
  A  ext/gd/libgd/gd_gradient.c
  A  ext/gd/libgd/gd_gradient.h
  A  ext/gd/libgd/gd_heif.c
  A  ext/gd/libgd/gd_jxl.c
  A  ext/gd/libgd/gd_metadata.c
  A  ext/gd/libgd/gd_nnquant.c
  A  ext/gd/libgd/gd_nnquant.h
  A  ext/gd/libgd/gd_path.c
  A  ext/gd/libgd/gd_path.h
  A  ext/gd/libgd/gd_path_arc.c
  A  ext/gd/libgd/gd_path_arc.h
  A  ext/gd/libgd/gd_path_dash.c
  A  ext/gd/libgd/gd_path_dash.h
  A  ext/gd/libgd/gd_path_matrix.c
  A  ext/gd/libgd/gd_path_matrix.h
  A  ext/gd/libgd/gd_path_outline.h
  A  ext/gd/libgd/gd_path_stroke.c
  A  ext/gd/libgd/gd_perceptual_diff.c
  A  ext/gd/libgd/gd_qoi.c
  A  ext/gd/libgd/gd_qoi.h
  A  ext/gd/libgd/gd_readimage.c
  A  ext/gd/libgd/gd_span_rle.c
  A  ext/gd/libgd/gd_span_rle.h
  A  ext/gd/libgd/gd_surface.c
  A  ext/gd/libgd/gd_surface.h
  A  ext/gd/libgd/gd_tiff.c
  A  ext/gd/libgd/gd_uhdr.c
  A  ext/gd/libgd/gd_vector2d.h
  A  ext/gd/libgd/gd_vector2d_private.h
  A  ext/gd/libgd/gd_version.c
  A  ext/gd/libgd/gdfx.c
  A  ext/gd/libgd/gdfx.h
  A  ext/gd/tests/imagepng_filters.phpt
  M  ext/gd/config.m4
  M  ext/gd/config.w32
  M  ext/gd/gd.c
  M  ext/gd/libgd/bmp.h
  M  ext/gd/libgd/gd.c
  M  ext/gd/libgd/gd.h
  M  ext/gd/libgd/gd2copypal.c
  M  ext/gd/libgd/gd2time.c
  M  ext/gd/libgd/gd2topng.c
  M  ext/gd/libgd/gd_avif.c
  M  ext/gd/libgd/gd_bmp.c
  M  ext/gd/libgd/gd_color_match.c
  M  ext/gd/libgd/gd_crop.c
  M  ext/gd/libgd/gd_errors.h
  M  ext/gd/libgd/gd_filter.c
  M  ext/gd/libgd/gd_gd.c
  M  ext/gd/libgd/gd_gd2.c
  M  ext/gd/libgd/gd_gif_in.c
  M  ext/gd/libgd/gd_gif_out.c
  M  ext/gd/libgd/gd_intern.h
  M  ext/gd/libgd/gd_interpolation.c
  M  ext/gd/libgd/gd_io.c
  M  ext/gd/libgd/gd_io.h
  M  ext/gd/libgd/gd_io_dp.c
  M  ext/gd/libgd/gd_io_file.c
  M  ext/gd/libgd/gd_io_ss.c
  M  ext/gd/libgd/gd_jpeg.c
  M  ext/gd/libgd/gd_matrix.c
  M  ext/gd/libgd/gd_png.c
  M  ext/gd/libgd/gd_rotate.c
  M  ext/gd/libgd/gd_security.c
  M  ext/gd/libgd/gd_ss.c
  M  ext/gd/libgd/gd_tga.c
  M  ext/gd/libgd/gd_tga.h
  M  ext/gd/libgd/gd_topal.c
  M  ext/gd/libgd/gd_transform.c
  M  ext/gd/libgd/gd_wbmp.c
  M  ext/gd/libgd/gd_webp.c
  M  ext/gd/libgd/gd_xbm.c
  M  ext/gd/libgd/gdcache.c
  M  ext/gd/libgd/gdcache.h
  M  ext/gd/libgd/gddemo.c
  M  ext/gd/libgd/gdfontg.c
  M  ext/gd/libgd/gdfontg.h
  M  ext/gd/libgd/gdfontl.c
  M  ext/gd/libgd/gdfontl.h
  M  ext/gd/libgd/gdfontmb.c
  M  ext/gd/libgd/gdfontmb.h
  M  ext/gd/libgd/gdfonts.c
  M  ext/gd/libgd/gdfonts.h
  M  ext/gd/libgd/gdfontt.c
  M  ext/gd/libgd/gdfontt.h
  M  ext/gd/libgd/gdft.c
  M  ext/gd/libgd/gdhelpers.c
  M  ext/gd/libgd/gdhelpers.h
  M  ext/gd/libgd/gdkanji.c
  M  ext/gd/libgd/gdparttopng.c
  M  ext/gd/libgd/gdtables.c
  M  ext/gd/libgd/gdtest.c
  M  ext/gd/libgd/gdtestft.c
  M  ext/gd/libgd/gdtopng.c
  M  ext/gd/libgd/gdxpm.c
  M  ext/gd/libgd/jisx0208.h
  M  ext/gd/libgd/pngtogd.c
  M  ext/gd/libgd/pngtogd2.c
  M  ext/gd/libgd/testac.c
  M  ext/gd/libgd/wbmp.c
  M  ext/gd/libgd/wbmp.h
  M  ext/gd/libgd/webpng.c
  M  ext/gd/tests/bug43073.phpt
  M  ext/gd/tests/bug48732-mb.phpt
  M  ext/gd/tests/bug48732.phpt
  M  ext/gd/tests/bug48801-mb.phpt
  M  ext/gd/tests/bug48801.phpt
  M  ext/gd/tests/bug53504.phpt
  M  ext/gd/tests/bug65148.phpt
  M  ext/gd/tests/bug73272.png
  M  ext/gd/tests/bug73291.phpt
  M  ext/gd/tests/createfromwbmp2_extern.phpt
  M  ext/gd/tests/gd223.png
  M  main/php_compat.h


Diff exceeded maximum size.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.