rfc:image2wbmp
no way to compare when less than two revisions

Differences

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


Next revision
rfc:image2wbmp [2018/05/11 14:01] – created cmb
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: 2019/01/28 13:31 by cmb