rfc:image2wbmp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rfc:image2wbmp [2018/05/11 14:01] (current)
cmb created
Line 1: Line 1:
 +====== PHP RFC: Deprecate and Remove image2wbmp() ======
 +  * Version: 0.1
 +  * Date: 2018-05-11
 +  * Author: Christoph M. Becker, cmb@php.net
 +  * Status: Under Discussion
 +  * First Published at: http://​wiki.php.net/​rfc/​image2wbmp
  
 +===== Introduction =====
 +
 +ext/gd has two functions to output WBMP ((Wireless Application Protocol Bitmap Format; not Windows Bitmap)) images: ''​imagewbmp()''​ and ''​image2wbmp()''​.
 +Both are supposed to handle the necessary monochrome conversion by different means.
 +While the former function allows the desired foreground color to be specified, the latter
 +function is supposed to take a brightness threshold parameter. However, as of PHP 5.0.0 the
 +threshold parameter of ''​image2wbmp()''​ is treated as foreground color, so both functions
 +are basically identical.
 +
 +This pointless duplication of functionality could be resolved by fixing ''​image2wbmp()''​
 +according to the documentation (i.e. treat the third parameter actually as brightness treshold),
 +but
 +
 +  * fixing **this** 10+y old bug is likely to cause more harm than good
 +  * a monochrome conversion should be a **general** feature of GD (or rather libgd), since it may be useful for other image formats as well (e.g. PNG)
 +  * the [[https://​github.com/​php/​php-src/​blob/​PHP-7.2.4/​ext/​gd/​gd.c#​L4140|implemented monochrome conversion]] is very simplistic, and does not fit to [[http://​libgd.github.io/​manuals/​2.2.5/​files/​gd_filter-c.html#​gdImageGrayScale|gdImageGrayScale()]]'​s [[https://​github.com/​php/​php-src/​blob/​PHP-7.2.4/​ext/​gd/​libgd/​gd_filter.c#​L74|algorithm]]
 +  * WBMP might be considered obsolete nowadays
 +
 +===== Proposal =====
 +
 +Therefore, this RFC proposes to:
 +
 +  - fix the [[http://​de2.php.net/​manual/​en/​function.image2wbmp.php|documentation]] according to the current implementation
 +  - remove superfluous code (most notably [[https://​github.com/​php/​php-src/​blob/​PHP-7.2.4/​ext/​gd/​gd.c#​L4103|_php_image_bw_convert()]])
 +  - deprecate ''​image2wbmp()''​
 +  - finally remove ''​image2wbmp()''​ altogether
 +
 +===== Backward Incompatible Changes =====
 +
 +After the deprecation,​ each call to ''​image2wbmp()''​ would issue a deprecated warning.
 +After the removal, each call to ''​image2wbmp()''​ would raise a fatal error.
 +
 +===== Proposed PHP Version(s) =====
 +
 +Item (1) to (3) of the proposal should target next PHP 7.y (i.e. PHP 7.3),
 +while item (4) (i.e. the actual removal) should target next PHP x (supposedly PHP 8).
 +
 +===== Open Issues =====
 +
 +None, yet.
 +
 +===== Future Scope =====
 +
 +None, yet.
 +
 +===== Proposed Voting Choices =====
 +
 +A single vote will be held to decide whether to implement the [[#​proposal|proposal]].
 +This vote will require a 2/3 supermajority.
 +
 +===== Patches and Tests =====
 +
 +I'm going to prepare a pull request for the proposed changes targeting next PHP 7.y as soon as possible.
 +
 +===== Implementation =====
 +
 +After the project is implemented,​ this section should contain ​
 +  - the version(s) it was merged into
 +  - a link to the git commit(s)
 +  - a link to the PHP manual entry for the feature
 +
 +===== References =====
 +
 +  * preliminary [[https://​externals.io/​message/​102025|discussion on internals]]
 +
 +===== Rejected Features =====
 +
 +None, yet.
rfc/image2wbmp.txt · Last modified: 2018/05/11 14:01 by cmb