<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Rpsl Blog &#187; optimize</title>
	<atom:link href="http://blog.rpsl.info/tag/optimize/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rpsl.info</link>
	<description></description>
	<lastBuildDate>Tue, 24 Jan 2012 11:35:02 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP Кэширование картинок.</title>
		<link>http://blog.rpsl.info/2009/08/php-images-cache/</link>
		<comments>http://blog.rpsl.info/2009/08/php-images-cache/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 11:05:07 +0000</pubDate>
		<dc:creator>Rpsl</dc:creator>
				<category><![CDATA[Полезное]]></category>
		<category><![CDATA[Статьи]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[optimize]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.rpsl.info/?p=346</guid>
		<description><![CDATA[Недавно была необходимость сделать функцию кэширования картинок на php ну я и накидался простой скрипт, который отлично справляется с этой задачей. Логика работы скрипта очень простая. Он смотрит входящие параметры, проверяет есть ли картинка заданного размера и отдает её если она есть или создает в подпапке&#160; такую картинку и отдает её. Это спасает нас от необходимости делать кучу ресайзов при загрузке картинки + это универсальный способ, который можно использовать в любом проекте. Листинг под катом. images_cache.php // ------ Define's -------------- &#160; $file_folder = $_SERVER&#91;'DOCUMENT_ROOT'&#93;.&#34;/images&#34;; $file_image = $_GET&#91;'image'&#93;; $file_size = $_GET&#91;'size'&#93;; &#160; // ------------------------------ &#160; if&#40;empty&#40;$file_size&#41;&#41;&#123; $file_size = 50; &#125; &#160; [...]]]></description>
			<content:encoded><![CDATA[Недавно была необходимость сделать функцию <strong>кэширования картинок на php</strong> ну я и накида<span style="text-decoration: line-through">лся</span> простой скрипт, который отлично справляется с этой задачей.

Логика работы скрипта очень простая. Он смотрит входящие параметры, проверяет есть ли картинка заданного размера и отдает её если она есть или создает в подпапке&nbsp; такую картинку и отдает её.

Это спасает нас от необходимости делать кучу ресайзов при загрузке картинки + это универсальный способ, который можно использовать в любом проекте.

Листинг под катом.

<span id="more-346"></span>
<strong>images_cache.php</strong>


<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// ------ Define's --------------</span>
&nbsp;
<span style="color: #000088;">$file_folder</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'DOCUMENT_ROOT'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/images&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$file_image</span>  <span style="color: #339933;">=</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'image'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$file_size</span>   <span style="color: #339933;">=</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'size'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// ------------------------------</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file_size</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$file_size</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">50</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> img_resize<span style="color: #009900;">&#40;</span><span style="color: #000088;">$src</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dest</span><span style="color: #339933;">,</span> <span style="color: #000088;">$width</span><span style="color: #339933;">,</span> <span style="color: #000088;">$height</span><span style="color: #339933;">,</span> <span style="color: #000088;">$rgb</span> <span style="color: #339933;">=</span> <span style="color: #208080;">0xFFFFFF</span><span style="color: #339933;">,</span> <span style="color: #000088;">$quality</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$size</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getimagesize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$src</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span> <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000088;">$format</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'mime'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'mime'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'/'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$icfunc</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'imagecreatefrom'</span><span style="color: #339933;">.</span><span style="color: #000088;">$format</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$icfunc</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000088;">$x_ratio</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$width</span>  <span style="color: #339933;">/</span> <span style="color: #000088;">$size</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$y_ratio</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$height</span> <span style="color: #339933;">/</span> <span style="color: #000088;">$size</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$height</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000088;">$y_ratio</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$x_ratio</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$height</span>  <span style="color: #339933;">=</span> <span style="color: #000088;">$y_ratio</span> <span style="color: #339933;">*</span> <span style="color: #000088;">$size</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000088;">$x_ratio</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$y_ratio</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$width</span>   <span style="color: #339933;">=</span> <span style="color: #000088;">$x_ratio</span> <span style="color: #339933;">*</span> <span style="color: #000088;">$size</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000088;">$ratio</span>       <span style="color: #339933;">=</span> <span style="color: #990000;">min</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$x_ratio</span><span style="color: #339933;">,</span> <span style="color: #000088;">$y_ratio</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$use_x_ratio</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$x_ratio</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$ratio</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$new_width</span>   <span style="color: #339933;">=</span> <span style="color: #000088;">$use_x_ratio</span>  ? <span style="color: #000088;">$width</span>  <span style="color: #339933;">:</span> <span style="color: #990000;">floor</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">*</span> <span style="color: #000088;">$ratio</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$new_height</span>  <span style="color: #339933;">=</span> <span style="color: #339933;">!</span><span style="color: #000088;">$use_x_ratio</span> ? <span style="color: #000088;">$height</span> <span style="color: #339933;">:</span> <span style="color: #990000;">floor</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">*</span> <span style="color: #000088;">$ratio</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$new_left</span>    <span style="color: #339933;">=</span> <span style="color: #000088;">$use_x_ratio</span>  ? <span style="color: #cc66cc;">0</span> <span style="color: #339933;">:</span> <span style="color: #990000;">floor</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$new_width</span><span style="color: #009900;">&#41;</span>   <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$new_top</span>     <span style="color: #339933;">=</span> <span style="color: #339933;">!</span><span style="color: #000088;">$use_x_ratio</span> ? <span style="color: #cc66cc;">0</span> <span style="color: #339933;">:</span> <span style="color: #990000;">floor</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$height</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$new_height</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$isrc</span>  <span style="color: #339933;">=</span> <span style="color: #000088;">$icfunc</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$src</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$idest</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatetruecolor</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span><span style="color: #339933;">,</span> <span style="color: #000088;">$height</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #990000;">imagefill</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$idest</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$rgb</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">imagecopyresampled</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$idest</span><span style="color: #339933;">,</span> <span style="color: #000088;">$isrc</span><span style="color: #339933;">,</span> <span style="color: #000088;">$new_left</span><span style="color: #339933;">,</span> <span style="color: #000088;">$new_top</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$new_width</span><span style="color: #339933;">,</span> <span style="color: #000088;">$new_height</span><span style="color: #339933;">,</span> <span style="color: #000088;">$size</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$size</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #990000;">imagejpeg</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$idest</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dest</span><span style="color: #339933;">,</span> <span style="color: #000088;">$quality</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #990000;">imagedestroy</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$isrc</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">imagedestroy</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$idest</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$file_destination_folder</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$file_folder</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$file_size</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$file_destination</span>        <span style="color: #339933;">=</span> <span style="color: #000088;">$file_folder</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$file_size</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$file_image</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file_destination</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file_destination_folder</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">mkdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file_destination_folder</span><span style="color: #339933;">,</span> <span style="color: #208080;">0777</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #990000;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    img_resize<span style="color: #009900;">&#40;</span><span style="color: #000088;">$file_folder</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$file_image</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file_destination</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file_size</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$file_final_size</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getimagesize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file_destination</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-type: &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$file_final_size</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'mime'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Length: '</span> <span style="color: #339933;">.</span> <span style="color: #990000;">filesize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file_destination</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">readfile</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file_destination</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>




Далее, что бы всё было красиво, нам нужно добавить запись в .htaccess, что бы наши картинки имели нормальные адреса
<br /><strong>.htaccess</strong>
<pre>RewriteRule   ^image/([0-9]+)/(.*)$  images_cache.php?size=$1&amp;image=$2 [L,QSA]
</pre>

Плюс, для оптимизации картинок, можно повесить в крон <a href="http://habrahabr.ru/blogs/wordpress/42192/">shell скрипт от Александра Улизько</a>.
<br /><strong>images_optimize.sh</strong>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">for</span> <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-iname</span> <span style="color: #ff0000;">&quot;*.jpg&quot;</span> <span style="color: #660033;">-or</span> <span style="color: #660033;">-iname</span> <span style="color: #ff0000;">&quot;*.png&quot;</span> <span style="color: #660033;">-or</span> <span style="color: #660033;">-iname</span> <span style="color: #ff0000;">&quot;*.jpeg&quot;</span><span style="color: #000000; font-weight: bold;">`</span>;<span style="color: #000000; font-weight: bold;">do</span>
  <span style="color: #007800;">ext</span>=<span style="color: #800000;">${file##*.}</span>
  <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$ext</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$ext</span>&quot;</span> = <span style="color: #ff0000;">&quot;jpg&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
      <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;optimizing <span style="color: #007800;">${file}</span> as jpeg file with jpegtran&quot;</span>
      jpegtran <span style="color: #660033;">-copy</span> none <span style="color: #660033;">-optimize</span> <span style="color: #660033;">-perfect</span> <span style="color: #660033;">-outfile</span> temp_abracadabra_filename.jpg <span style="color: #007800;">$file</span>
      <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #660033;">-f</span> temp_abracadabra_filename.jpg <span style="color: #007800;">$file</span>;
    <span style="color: #000000; font-weight: bold;">fi</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$ext</span>&quot;</span> = <span style="color: #ff0000;">&quot;jpeg&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
      <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;optimizing <span style="color: #007800;">${file}</span> as jpeg file with jpegtran&quot;</span>
      jpegtran <span style="color: #660033;">-copy</span> none <span style="color: #660033;">-optimize</span> <span style="color: #660033;">-perfect</span> <span style="color: #660033;">-outfile</span> temp_abracadabra_filename.jpeg <span style="color: #007800;">$file</span>
      <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #660033;">-f</span> temp_abracadabra_filename.jpeg <span style="color: #007800;">$file</span>;
    <span style="color: #000000; font-weight: bold;">fi</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$ext</span>&quot;</span> = <span style="color: #ff0000;">&quot;png&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
      <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;optimizing <span style="color: #007800;">${file}</span> as png file with pngcrush&quot;</span>
      pngcrush <span style="color: #660033;">-rem</span> alla <span style="color: #660033;">-reduce</span> <span style="color: #660033;">-brute</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$file</span>&quot;</span> temp_abracadabra_filename.png;
      <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #660033;">-f</span> temp_abracadabra_filename.png <span style="color: #007800;">$file</span>;
    <span style="color: #000000; font-weight: bold;">fi</span>
  <span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">done</span>;</pre></div></div>




<strong>UPDATE:</strong> <a href="http://blog.rpsl.info/2011/03/php-kehshirovanie-kartinok-chast-vtoraya.html">Часть вторая</a>]]></content:encoded>
			<wfw:commentRss>http://blog.rpsl.info/2009/08/php-images-cache/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

