Media: Support Stream Wrappers In WP_Image_Editor_Imagick
Since WP_Image_Editor's introduction, stream wrappers have functioned in WP_Image_Editor_GD, but haven't been properly supported in WP_Image_Editor_Imagick.
- Detects stream wrappers and uses
file_put_contents() along with Imagick::read/getImageBlob() for handling when necessary.
- Introduces private method,
WP_Image_Editor_Imagick::write_image to handle detection and proper saving.
- Introduces
WP_Test_Stream class for testing stream wrappers, along with new tests for Imagick's stream handling and a stream filename test.
Adds requirement for Imagick::readImageBlob(), available in Imagick >= 2.0.0, which aligns with the current requirement of Imagick >= 2.2.0.
Props p00ya, calin, joemcgill, pputzer, jimyaghi, mikeschroder.
Fixes #42663.