suchen
HeimBackend-EntwicklungPHP-Tutorial无损压缩图片心得(二)_PHP教程

无损压缩图片心得(二)_PHP教程

Jul 20, 2016 am 11:15 AM
上传zwei压缩Teilnahme图片existieren处理心得活动用户vonnetto

用户之前在发烧网参加的上传图片活动都没有经过无损压缩处理.想用脚本对一月内传上去的图片进行处理,但Amazon_S3服务集群上只能使用他们提供的一些简单的API.所以只能先down 下来,压缩处理后,再传上去覆盖原来的图片.

经过多次调试,最终写了个php的脚本对之进行处理:详见这里.

代码如下:

<span class="lnum">   1:  </span><?php
<span class="lnum">   2:  </span><span class="kwrd">function</span> compress_img ($source) {
<span class="lnum">   3:  </span>    $exts = array(<span class="str">"png"</span>,<span class="str">"bmp"</span>,<span class="str">"gif"</span>,<span class="str">"pnm"</span>,<span class="str">"tiff"</span>);
<span class="lnum">   4:  </span>    $start_time = strtotime(<span class="str">"-30 day"</span>);
<span class="lnum">   5:  </span>    exec(<span class="str">"s3cmd ls s3://fever38-us-static/hotdeals/{$source}/ > ./tmp.txt"</span>);
<span class="lnum">   6:  </span>    $rs = file(<span class="str">'./tmp.txt'</span>);
<span class="lnum">   7:  </span>&#160;
<span class="lnum">   8:  </span>    <span class="kwrd">foreach</span>($rs <span class="kwrd">as</span> $line) {
<span class="lnum">   9:  </span>        $r =  array_filter(explode(<span class="str">' '</span>, $line));
<span class="lnum">  10:  </span>        <span class="kwrd">if</span>(!empty($r[0])){
<span class="lnum">  11:  </span>            $r[0] = trim($r[0]);
<span class="lnum">  12:  </span>            $time = strtotime($r[0]);
<span class="lnum">  13:  </span>        }
<span class="lnum">  14:  </span>        <span class="kwrd">if</span>(!empty($time) && $time >= $start_time){
<span class="lnum">  15:  </span>            <span class="kwrd">if</span>(!empty($r[10])){
<span class="lnum">  16:  </span>                $img = trim($r[10]);
<span class="lnum">  17:  </span>                $path_info = pathinfo($r[10]);
<span class="lnum">  18:  </span>                $ext = trim($path_info[<span class="str">"extension"</span>]);
<span class="lnum">  19:  </span>                $file_name = strtolower(trim($path_info[<span class="str">"basename"</span>]));
<span class="lnum">  20:  </span>&#160;
<span class="lnum">  21:  </span>                exec(<span class="str">"s3cmd get "</span>.$img);
<span class="lnum">  22:  </span>                exec(<span class="str">"cp {$file_name} /mnt/heisoo/s3/{$source}/"</span>);
<span class="lnum">  23:  </span>&#160;
<span class="lnum">  24:  </span>                <span class="kwrd">if</span> (in_array($ext,$exts)) {
<span class="lnum">  25:  </span>                    system(<span class="str">"/usr/bin/optipng -o5 "</span>.$file_name);
<span class="lnum">  26:  </span>                }
<span class="lnum">  27:  </span>                <span class="kwrd">if</span> ($ext == <span class="str">"jpg"</span> || $ext == <span class="str">"jpeg"</span>) {
<span class="lnum">  28:  </span>                    system(<span class="str">"/usr/bin/jpegoptim -o --strip-all "</span>.$file_name);
<span class="lnum">  29:  </span>                }
<span class="lnum">  30:  </span>                system(<span class="str">"s3cmd put {$file_name} {$img} --guess-mime-type --add-header 'Cache-Control:max-age=31536000' --add-header 'Expires: Thu, 01 Dec 2014 16:00:00 GMT' --acl-public"</span>);
<span class="lnum">  31:  </span>                unlink($file_name);
<span class="lnum">  32:  </span>            }
<span class="lnum">  33:  </span>        }
<span class="lnum">  34:  </span>    }
<span class="lnum">  35:  </span>&#160;
<span class="lnum">  36:  </span>    unlink(<span class="str">'./tmp.txt'</span>);
<span class="lnum">  37:  </span>}
<span class="lnum">  38:  </span>&#160;
<span class="lnum">  39:  </span>compress_img(<span class="str">"promotion_main_pic"</span>);
<span class="lnum">  40:  </span>compress_img(<span class="str">"src_thumb"</span>);
<span class="lnum">  41:  </span>compress_img(<span class="str">"uploadImage"</span>);
<span class="lnum">  42:  </span>compress_img(<span class="str">"dialog_image"</span>);
<span class="lnum">  43:  </span>compress_img(<span class="str">"joinPicture"</span>);
<span class="lnum">  44:  </span>?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/440176.htmlTechArticle用户之前在发烧网参加的上传图片活动都没有经过无损压缩处理.想用脚本对一月内传上去的图片进行处理,但Amazon_S3服务集群上只能使用他...
Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
PHP-E-Mail: Schritt-für-Schritt-SendungsanleitungPHP-E-Mail: Schritt-für-Schritt-SendungsanleitungMay 09, 2025 am 12:14 AM

PhpisusedForSensionsemailsDuetoitSintegrationWithServerMailServicesandexternalsMtpproviders, automatisieren SieNotifikationen undmarketingCampaigns.1) setupyourphpenvironmentwithawebebascriccriptionWithPhpithPhPhPhPhPhPHPHPHPSMAILFUCTORISTION.2) useabasiscriccription

So senden Sie E -Mails per PHP: Beispiele und CodeSo senden Sie E -Mails per PHP: Beispiele und CodeMay 09, 2025 am 12:13 AM

Der beste Weg, um E -Mails zu senden, besteht darin, die Phpmailer -Bibliothek zu verwenden. 1) Die Verwendung der Funktion mail () ist einfach, aber unzuverlässig, was dazu führen kann, dass E -Mails Spam eingeben oder nicht geliefert werden können. 2) Phpmailer bietet eine bessere Kontrolle und Zuverlässigkeit und unterstützt HTML -Mail-, Anhänge- und SMTP -Authentifizierung. 3) Stellen Sie sicher, dass die SMTP -Einstellungen korrekt konfiguriert sind und die Verschlüsselung (z. B. Starttls oder SSL/TLS) zur Verbesserung der Sicherheit verwendet wird. 4) Für große Mengen von E -Mails sollten Sie ein E -Mail -Warteschlangensystem verwenden, um die Leistung zu optimieren.

Erweiterte PHP -E -Mail: Benutzerdefinierte Header und FunktionenErweiterte PHP -E -Mail: Benutzerdefinierte Header und FunktionenMay 09, 2025 am 12:13 AM

CustomHeaDersandadvancedFeaturesinphpemailenHanceFunctionality und Relance.1) CustomHeadersAddMetAforTrackingandCategorization.2) htmlemailSallowFormattingAndInteractivity.3) AttemmentmentsCanbesentusings -artig -Phpmailer.4) SMTPAUTHENTICTIVEMPR

Handbuch zum Senden von E -Mails mit PHP & SMTPHandbuch zum Senden von E -Mails mit PHP & SMTPMay 09, 2025 am 12:06 AM

Das Senden von E -Mails mit PHP und SMTP kann über die Phpmailer -Bibliothek erreicht werden. 1) Installieren und konfigurieren Sie Phpmailer, 2) Setzen Sie SMTP -Serverdetails, 3) Definieren Sie den E -Mail -Inhalt, 4) E -Mails senden und Fehler behandeln. Verwenden Sie diese Methode, um die Zuverlässigkeit und Sicherheit von E -Mails sicherzustellen.

Was ist der beste Weg, um eine E -Mail mit PHP zu senden?Was ist der beste Weg, um eine E -Mail mit PHP zu senden?May 08, 2025 am 12:21 AM

ThebestApproachForSendingemailsinphpisusinusThephpmailerlibraryDuetoitSRective, merkeurichness, Anneaseofuse.phpmailersupportsSmtp, bietet DETAILEDErRORHANDLY, erlaubt, dass

Best Practices für die Abhängigkeitsinjektion in PHPBest Practices für die Abhängigkeitsinjektion in PHPMay 08, 2025 am 12:21 AM

Der Grund für die Verwendung der Abhängigkeitsinjektion (DI) ist, dass sie lose Kopplung, Testbarkeit und Wartbarkeit des Codes fördert. 1) Verwenden Sie den Konstruktor, um Abhängigkeiten zu injizieren.

Tipps und Tricks für PHP -Performance -TuningTipps und Tricks für PHP -Performance -TuningMay 08, 2025 am 12:20 AM

PhpperformancetuningiscrucialBecauseitenhancesspeedandeffizienz, die sichvitalforewebapplications.1) CachingwithapcureducesDatabaseloadandimprovesresponSetimes.2 optimierenDatabasequeriesbyselekting -Antriebsanbietung und -Insusingsusing -INDUBUTUBUTUBEXINGEPEEDEPEEDEPEEDEPEEDEPEEDEPEEDEPEEDEPEDEPEED.

PHP -E -Mail -Sicherheit: Best Practices für das Senden von E -MailsPHP -E -Mail -Sicherheit: Best Practices für das Senden von E -MailsMay 08, 2025 am 12:16 AM

TheBestPracticesForSendingemailsSecurelyInphpinclude: 1) usingSecureConfigurations withSmtpandStartTlsenScryption, 2) Validating und SanitIningInputStopreventInjection -Tacks -3) -Decryption -sensistataWithins -SussionSmingSmSslsl, 4), 4), 4), 4), 4)

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools