Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:97668 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 18762 invoked from network); 10 Jan 2017 19:24:27 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 10 Jan 2017 19:24:27 -0000 X-Host-Fingerprint: 95.144.152.155 unknown Received: from [95.144.152.155] ([95.144.152.155:26806] helo=localhost.localdomain) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 0F/87-55699-8E435785 for ; Tue, 10 Jan 2017 14:24:26 -0500 Message-ID: <0F.87.55699.8E435785@pb1.pair.com> To: internals@lists.php.net References: <2cee1fe1-6dfd-0337-7286-42f873b9f508@gmx.de> <08.81.31343.C40F3785@pb1.pair.com> <7db42b81-0fc3-c572-8ff4-55af22b60975@gmx.de> Date: Tue, 10 Jan 2017 19:24:20 +0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 SeaMonkey/2.46 MIME-Version: 1.0 In-Reply-To: <7db42b81-0fc3-c572-8ff4-55af22b60975@gmx.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Posted-By: 95.144.152.155 Subject: Re: ext/gd: support creation of animated GIFs From: ajf@ajf.me (Andrea Faulds) Hi, Christoph M. Becker wrote: > On 09.01.2017 at 21:19, Andrea Faulds wrote: > >> Would this opaque object still allow you to use an arbitrary stream of >> your choice? >> >> Also, like with imagepng() etc., could you stream the output to uh… >> PHP's default output stream? (I'm not sure what it's called. The thing >> that `echo` goes to.) > > It would be possible to allow either a stream URL or a stream to given, > what would fit to image(png|jpeg|…)(). However, these are "stand-alone" > functions which close the stream when they're finished, while the > animated GIF writing functions would *allow* the stream to be > manipulated by the userland developer, even though I can't see practical > reason to do so. > > And, of course, we could also let the functions accept NULL to directly > write to stdout. Passing in 'php://stdout' should have the same effect. Alright. > >> If it does both, I don't have much objection. >> >> Mind you… is it really necessary to hide the stream from the user? >> fopen() is not particularly hard to use, and there are (admittedly >> niche) cases where you might want to handle the stream yourself. > > Are there really such cases? Should we sacrifice the safety of internal > stream handling to support some (hypothetical?) use cases? > In fairness, I'm not sure. I know animated GIF streaming has been tried before, though I doubt if it's actually used at all these days. A more reasonable case might be embedding an animated GIF in other binary data. But that's a hypothetical. What is the actual “safety” gain of not using streams? That you don't need to use fopen() yourself? (PHP will close files for you.) I'm just not super convinced there's a need for adding this extra layer. Thanks for your response. -- Andrea Faulds https://ajf.me/