Как получить в переменную изображение? - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Thu, 25 Apr 2024 11:09:25 +0300 <pre class="prettyprint">&lt;?php // create mq image $mq_w = 128; $mq_h = $mq_w/$dst_rate; $img_mq = imagecreatetruecolor($mq_w, $mq_h); imagecopyresampled($img_mq, $img_hq, 0, 0, 0, 0, $mq_w, $mq_h, $dst_w, $dst_h); imagejpeg($img_mq, &quot;{$path}_MQ.jpg&quot;); $response = new Response(); switch($type) { case &#039;HQ&#039;&#58; ob_start(); imagejpeg($img_hq); $response-&gt;setContent(ob_get_clean()); $response-&gt;headers-&gt;set(&#039;Content-Type&#039;, image_type_to_mime_type(IMAGETYPE_JPEG)); $response-&gt;setStatusCode = 200; break; case &#039;MQ&#039;&#58; ob_start(); imagejpeg($img_mq); $response-&gt;setContent(ob_get_clean()); $response-&gt;setStatusCode = 200; $response-&gt;headers-&gt;set(&#039;Content-Type&#039;, image_type_to_mime_type(IMAGETYPE_JPEG)); break; default&#58; return $this-&gt;errorAction(404); } imagedestroy($img_hq); imagedestroy($img_mq); return $response; </pre> https://visavi.net/topics/42506/684805 Как получить в переменную изображение? T-S Sat, 25 Jul 2015 13:21:19 +0300 Сообщения https://visavi.net/topics/42506/684805 Совсем нет. Просто задача была в том что бы выдать в браузер изображене с ресурса который уже создан. Но не совсем в браузер. А передать его с контроллера в класс Response который уже это сделает.<br> Я как то затупил про буферизацию хотя она в остальных экшенах используется шаблонизатором.<br> Задача такова - имеется ссылка на удаленное изображение. Это изображение получается в виде строки обрезается и улетает в файловый кеш где потом будет вылавливатся через nginx. После выдать обрезанное изображение в браузер.<br> Я собственно сделал так и забыл уже<br> <br> <em><span style="font-size:x-small">Добавлено через 03:10 сек.</span></em><br> <pre class="prettyprint"> &lt;?php //... $data = curl_exec($ch); $info = curl_getinfo($ch); $error = curl_error($ch); if ($info&#91;&#039;http_code&#039;] != 200 || $error || $info&#91;&#039;content_type&#039;] != &#039;image/jpeg&#039;) { log(__FILE__ . &#039;&#58; &#039;. __LINE__); return $this-&gt;errorAction(Response&#58;&#58;HTTP_INTERNAL_SERVER_ERROR); } $src_img = imagecreatefromstring($data); $src_w = imagesx($src_img); $src_h = imagesy($src_img); // исходное соотношение //$src_rate = $src_w / $src_h; // необходимое соотношение картинки $dst_rate = 1.777777777777778; // ширина нового изображения $dst_w = $src_w &lt; 320 ? $src_w &#58; 320; // высота результата $dst_h = round($dst_w / $dst_rate); // новая высота оригинала $src_h_new = $src_w / $dst_rate; // отступы вырезаемой части $src_indent = round(($src_h - $src_h_new) / 2); $src_x = 0; $src_y = $src_indent; // отступы результата $dst_x = 0; $dst_y = 0; $img_hq = imagecreatetruecolor($dst_w, $dst_h); // копируем прямоугольник imagecopyresampled($img_hq, $src_img, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h_new); imagedestroy($src_img); imagejpeg($img_hq, &quot;{$path}_HQ.jpg&quot;); </pre> https://visavi.net/topics/42506/684804 Как получить в переменную изображение? T-S Sat, 25 Jul 2015 13:17:09 +0300 Сообщения https://visavi.net/topics/42506/684804 Вообще-то можно сделать вот так<br> <pre class="prettyprint">&lt;?php $src = &quot;http&#58;//visavi.net/images/img/logo.png&quot;; $original = imagecreatefromstring(file_get_contents($src)); $copy = imagecreatetruecolor(imagesx($original), imagesy($original)); imagecopy($copy, $original, 0, 0, 0, 0, imagesx($original), imagesy($original)); imagedestroy($original); var_dump($original, $copy); </pre> resource(4, Unknown)<br> resource(5, gd)<br> <br> но тут вряд ли получится сэкономить https://visavi.net/topics/42506/684796 Как получить в переменную изображение? Вантуз-мен Sat, 25 Jul 2015 00:55:47 +0300 Сообщения https://visavi.net/topics/42506/684796 Как я понял нужно клонировать переменную с ресурсом, даже не знаю есть ли такая возможность<br> <pre class="prettyprint">&lt;?php $src = &quot;http&#58;//visavi.net/images/img/logo.png&quot;; $image = imagecreatefromstring(file_get_contents($src)); $image2 = $image; imagedestroy($image2); var_dump($image === $image2);</pre> $image и $image2 идентичны<br> <br> поэтому самый явный вариант использовать результат функции file_get_contents($src) в твоем случае это $data https://visavi.net/topics/42506/684795 Как получить в переменную изображение? Вантуз-мен Sat, 25 Jul 2015 00:40:33 +0300 Сообщения https://visavi.net/topics/42506/684795 Ладно воспользовался буферизацией. Вопрос решен. https://visavi.net/topics/42506/684791 Как получить в переменную изображение? T-S Sat, 25 Jul 2015 00:25:37 +0300 Сообщения https://visavi.net/topics/42506/684791 4. <strong>T-S</strong>, memcache apc не? https://visavi.net/topics/42506/684778 Как получить в переменную изображение? Антон Fri, 24 Jul 2015 22:48:59 +0300 Сообщения https://visavi.net/topics/42506/684778 3. <strong>Reflesh</strong>, а лишний раз прочитать пост не?<br> <blockquote class="blockquote">Можно ли как то обойтись не сохраняя img_object в файл?<br> По поводу использования рессурсов и прочее блалабла я вкурсе. Просто не хочу лишний раз винт напрягать</blockquote> https://visavi.net/topics/42506/684776 Как получить в переменную изображение? T-S Fri, 24 Jul 2015 21:11:47 +0300 Сообщения https://visavi.net/topics/42506/684776 2. <strong>T-S</strong>, $var = filge_get_contents() не ? https://visavi.net/topics/42506/684774 Как получить в переменную изображение? Reflesh Fri, 24 Jul 2015 20:01:36 +0300 Сообщения https://visavi.net/topics/42506/684774 Как вариант нашел <pre class="prettyprint">&lt;?php ob_start(); imagejpeg($img_object); $data = ob_get_clean(); </pre> Может есть какая то функция предназначена для этого? https://visavi.net/topics/42506/684773 Как получить в переменную изображение? T-S Fri, 24 Jul 2015 19:23:09 +0300 Сообщения https://visavi.net/topics/42506/684773 Допустим есть $img_object = imagecreatefromstring($data);<br> его нужно обработать и переписать опять же в ПЕРЕМЕННУЮ $data.<br> Можно ли как то обойтись не сохраняя img_object в файл?<br> По поводу использования рессурсов и прочее блалабла я вкурсе. Просто не хочу лишний раз винт напрягать https://visavi.net/topics/42506/684772 Как получить в переменную изображение? T-S Fri, 24 Jul 2015 19:04:41 +0300 Сообщения https://visavi.net/topics/42506/684772