Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:97761 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 18406 invoked from network); 15 Jan 2017 13:42:13 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 15 Jan 2017 13:42:13 -0000 Authentication-Results: pb1.pair.com header.from=cmbecker69@gmx.de; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=cmbecker69@gmx.de; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmx.de designates 212.227.17.22 as permitted sender) X-PHP-List-Original-Sender: cmbecker69@gmx.de X-Host-Fingerprint: 212.227.17.22 mout.gmx.net Received: from [212.227.17.22] ([212.227.17.22:50470] helo=mout.gmx.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 71/AD-00729-33C7B785 for ; Sun, 15 Jan 2017 08:42:12 -0500 Received: from [192.168.2.109] ([217.82.227.120]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MKu9E-1cSl4P2JJg-0001IM; Sun, 15 Jan 2017 14:42:05 +0100 To: Pierre Joye , PHP Internals List References: <2cee1fe1-6dfd-0337-7286-42f873b9f508@gmx.de> Message-ID: Date: Sun, 15 Jan 2017 14:42:17 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:B6QlnfcxorIH+W2p1agRlWbX1cocHB89W2fE8vqD5E/x2hJAcE+ ftCvBWLY0NeRLU2xt4dW7iwavueLF1Y0t9W/3/jnjDujH4aJN+RGBSvYUTzmi24B1ppP/gR 6UL68QqTSRGP5iHNrkKK3mOft4qQWLLwTiapYDdgXUbov5G2Rb8luj40GkueAjkaLEJ0+ay 8EwPqNNpUk9nvMbfh0WmA== X-UI-Out-Filterresults: notjunk:1;V01:K0:zRAieNt5rjg=:miun8Bw0VUPNiVgHwzXTsP sJPxl7saFWTfLl3Z3h1MOw+yqFsEwOHZ7J4CIvxLFkGISc7YkLVKKaMctU6l7A/peq6jIFXIt hXuPAk1FEdala2fNcgP5dSRSm4muQX8PSf5fNjaZqK8D+g94NU2RIjPHCzWjfnxzJdboXGUem OTGLTu+lZtEhpTAk7Qa6EqhengCrqbAEHCXLtnreOd15oCLHiEX9Yc5Fg5LPKLCr48ubMEZiO CccMzoTeV8x0rOLRrAMjsGf8mfaga9edkx5pnUEhDiFYdvD7h0UNu9H6r4sGSNjwoZKF9MaJJ YkKOJa3NTYZL1JWCWtMRaSSOuRL9MfTUL4IDIP9avlKI5FrUaEGHwx0TlAKUa2ZvOAaolK374 6OS8JaZ4yQsOfr3E5AwK2cLznCV0aQbaMYlRN+kai+tP+VWq8+dYxUzzaTMEBQk/4jw3rrQbU vEGg/jhP1hFpUJhrqSVtI3ajed2oMV9X0WYavEafvtQZMWmw9l0A2DT+4Xb4jy2XdBD0fbR1n 3NQCMr5QVUytCSHY8a3Uj6PULpi9bWBY9SdX+oqZD7ROpfmX6FgewdxgY72IeCe6mVcPLuhQa JsUPFea83LUXC5Qz93BzV3MppX8zT6tHd3zCSSJ8Fv2FlKUPxf9k4FD9BEQNcmDgSJqO3nKjo aHsaDJ4xs3OPR7zaAKo+rBqjBrPWsaw5ppDW2gAxqBKuZN/faBqGXjf80kZrFyBrvYK3ZN9yw u1im2BhTyaFCinBhTTQdDlTQXu2Lqqig+Az0gd+J2BGOPzCNbmbAIo2C2N3c4dhBcusWNAXQg QMyU8apBIu477Mjuf+A3xu2md0zvPw0kc8d8qrcm29StcpSSyZOcGvhTLE7ZjffkxHS1GTGxI nAuFQj7XQRiLItxBeMIInbp++v1LbFtkfZ1wIDKzWzQReM5fVMS1imrOxFKwQROuNPRC6nOeW Z4rf4MB0dJh651FnshcGL1OY0V5q8KxXmcXcHSEvllyqUH1iYpA+1eHIyOJ0ja7aQ7/zMI8jd GhT25WHqpacZvFmvBSqAH6N5tDTxKjtWlxUk1fUI4IAeCSsrdQNEvq+xgPnQ8lNhmA== Subject: Re: [PHP-DEV] ext/gd: support creation of animated GIFs From: cmbecker69@gmx.de ("Christoph M. Becker") On 15.01.2017 at 11:53, Pierre Joye wrote: > Just got a bunch of emails and see that one. I agree about object for > anims. Make the APIs also more friendly. > > I will post a detailed reply by Wednesday Thanks! Cheers, Christoph > Thanks for your work! > Pierre > > On Jan 9, 2017 7:53 AM, "Christoph M. Becker" wrote: > >> Hi! >> >> A while ago I've grabbed up and submitted >> PR #2024[1]. This lay dormant until recently when Joe had a look at so >> many PRs (thanks!), so I'm bringing this issue to your attention. >> >> I presume nobody is opposed that ext/gd should support the creation of >> animated GIFs (they appear to be still in fashion again), but I'm not >> sure about the API. My first shot (as implemented in the PR) was to >> offer a rather minimal layer over gdImageGifAnimBeginCtx(), >> gdImageGifAnimAddCtx() and gdImageGifAnimEndCtx()[2] (you can see an >> usage example in the submitted PHPT[3]). >> >> Kalle raised some objections regarding the direct use of streams in the >> API, namely that imagegifanimbegin() expects an open stream to be passed >> as parameter, so perhaps it would be better to accept a stream URL >> instead and manage the stream behind the scenes. That appears to be >> much more solid (as the developer couldn't fiddle with the stream), but >> would require some encapsulation mechanism, either a resource, what >> would be in line with the other GD resource types[4], or an (opaque) >> object, what appears more suitable for PHP 7. >> >> Currently, I'd prefer an *opaque* object which would be created by >> imagegifanimbegin() (creating the respective stream internally), passed >> to imageanimadd() and be destroyed by imagegifanimend(). >> >> Before proceeding to the implementation, I'd like to hear your thoughts >> about that! >> >> [1] >> [2] >> [3] >> > bbb4c7a8497032f98d062ac418d9fbbe> >> [4] >> >> -- >> Christoph M. Becker >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> >