Maison php教程 php手册 无损压缩图片心得(二)

无损压缩图片心得(二)

Jun 13, 2016 am 11:31 AM
上传 deux 压缩 Participer 图片 exister 处理 Expérience 活动 用户 de filet

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

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

代码如下:

<span class="lnum">   1:  </span><?php
Copier après la connexion
<span class="lnum">   2:  </span><span class="kwrd">function</span> compress_img ($source) {
Copier après la connexion
<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>);
Copier après la connexion
<span class="lnum">   4:  </span>    $start_time = strtotime(<span class="str">"-30 day"</span>);
Copier après la connexion
<span class="lnum">   5:  </span>    exec(<span class="str">"s3cmd ls s3://fever38-us-static/hotdeals/{$source}/ > ./tmp.txt"</span>);
Copier après la connexion
<span class="lnum">   6:  </span>    $rs = file(<span class="str">'./tmp.txt'</span>);
Copier après la connexion
<span class="lnum">   7:  </span>&#160;
Copier après la connexion
<span class="lnum">   8:  </span>    <span class="kwrd">foreach</span>($rs <span class="kwrd">as</span> $line) {
Copier après la connexion
<span class="lnum">   9:  </span>        $r =  array_filter(explode(<span class="str">' '</span>, $line));
Copier après la connexion
<span class="lnum">  10:  </span>        <span class="kwrd">if</span>(!empty($r[0])){
Copier après la connexion
<span class="lnum">  11:  </span>            $r[0] = trim($r[0]);
Copier après la connexion
<span class="lnum">  12:  </span>            $time = strtotime($r[0]);
Copier après la connexion
<span class="lnum">  13:  </span>        }
Copier après la connexion
<span class="lnum">  14:  </span>        <span class="kwrd">if</span>(!empty($time) && $time >= $start_time){
Copier après la connexion
<span class="lnum">  15:  </span>            <span class="kwrd">if</span>(!empty($r[10])){
Copier après la connexion
<span class="lnum">  16:  </span>                $img = trim($r[10]);
Copier après la connexion
<span class="lnum">  17:  </span>                $path_info = pathinfo($r[10]);
Copier après la connexion
<span class="lnum">  18:  </span>                $ext = trim($path_info[<span class="str">"extension"</span>]);
Copier après la connexion
<span class="lnum">  19:  </span>                $file_name = strtolower(trim($path_info[<span class="str">"basename"</span>]));
Copier après la connexion
<span class="lnum">  20:  </span>&#160;
Copier après la connexion
<span class="lnum">  21:  </span>                exec(<span class="str">"s3cmd get "</span>.$img);
Copier après la connexion
<span class="lnum">  22:  </span>                exec(<span class="str">"cp {$file_name} /mnt/heisoo/s3/{$source}/"</span>);
Copier après la connexion
<span class="lnum">  23:  </span>&#160;
Copier après la connexion
<span class="lnum">  24:  </span>                <span class="kwrd">if</span> (in_array($ext,$exts)) {
Copier après la connexion
<span class="lnum">  25:  </span>                    system(<span class="str">"/usr/bin/optipng -o5 "</span>.$file_name);
Copier après la connexion
<span class="lnum">  26:  </span>                }
Copier après la connexion
<span class="lnum">  27:  </span>                <span class="kwrd">if</span> ($ext == <span class="str">"jpg"</span> || $ext == <span class="str">"jpeg"</span>) {
Copier après la connexion
<span class="lnum">  28:  </span>                    system(<span class="str">"/usr/bin/jpegoptim -o --strip-all "</span>.$file_name);
Copier après la connexion
<span class="lnum">  29:  </span>                }
Copier après la connexion
<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>);
Copier après la connexion
<span class="lnum">  31:  </span>                unlink($file_name);
Copier après la connexion
<span class="lnum">  32:  </span>            }
Copier après la connexion
<span class="lnum">  33:  </span>        }
Copier après la connexion
<span class="lnum">  34:  </span>    }
Copier après la connexion
<span class="lnum">  35:  </span>&#160;
Copier après la connexion
<span class="lnum">  36:  </span>    unlink(<span class="str">'./tmp.txt'</span>);
Copier après la connexion
<span class="lnum">  37:  </span>}
Copier après la connexion
<span class="lnum">  38:  </span>&#160;
Copier après la connexion
<span class="lnum">  39:  </span>compress_img(<span class="str">"promotion_main_pic"</span>);
Copier après la connexion
<span class="lnum">  40:  </span>compress_img(<span class="str">"src_thumb"</span>);
Copier après la connexion
<span class="lnum">  41:  </span>compress_img(<span class="str">"uploadImage"</span>);
Copier après la connexion
<span class="lnum">  42:  </span>compress_img(<span class="str">"dialog_image"</span>);
Copier après la connexion
<span class="lnum">  43:  </span>compress_img(<span class="str">"joinPicture"</span>);
Copier après la connexion
<span class="lnum">  44:  </span>?>
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser le compte Xiaohongshu pour trouver des utilisateurs ? Puis-je retrouver mon numéro de téléphone portable ? Comment utiliser le compte Xiaohongshu pour trouver des utilisateurs ? Puis-je retrouver mon numéro de téléphone portable ? Mar 22, 2024 am 08:40 AM

Avec le développement rapide des médias sociaux, Xiaohongshu est devenue l'une des plateformes sociales les plus populaires. Les utilisateurs peuvent créer un compte Xiaohongshu pour montrer leur identité personnelle et communiquer et interagir avec d'autres utilisateurs. Si vous avez besoin de trouver le numéro Xiaohongshu d’un utilisateur, vous pouvez suivre ces étapes simples. 1. Comment utiliser le compte Xiaohongshu pour trouver des utilisateurs ? 1. Ouvrez l'application Xiaohongshu, cliquez sur le bouton « Découvrir » dans le coin inférieur droit, puis sélectionnez l'option « Notes ». 2. Dans la liste des notes, recherchez la note publiée par l'utilisateur que vous souhaitez rechercher. Cliquez pour accéder à la page de détails de la note. 3. Sur la page de détails de la note, cliquez sur le bouton « Suivre » sous l'avatar de l'utilisateur pour accéder à la page d'accueil personnelle de l'utilisateur. 4. Dans le coin supérieur droit de la page d'accueil personnelle de l'utilisateur, cliquez sur le bouton à trois points et sélectionnez « Informations personnelles »

Comment résoudre le problème de l'enregistrement automatique des images lors de la publication sur Xiaohongshu ? Où est l'image enregistrée automatiquement lors de la publication ? Comment résoudre le problème de l'enregistrement automatique des images lors de la publication sur Xiaohongshu ? Où est l'image enregistrée automatiquement lors de la publication ? Mar 22, 2024 am 08:06 AM

Avec le développement continu des médias sociaux, Xiaohongshu est devenue une plateforme permettant à de plus en plus de jeunes de partager leur vie et de découvrir de belles choses. De nombreux utilisateurs sont gênés par des problèmes de sauvegarde automatique lors de la publication d’images. Alors, comment résoudre ce problème ? 1. Comment résoudre le problème de l'enregistrement automatique des images lors de la publication sur Xiaohongshu ? 1. Vider le cache Tout d'abord, nous pouvons essayer de vider les données du cache de Xiaohongshu. Les étapes sont les suivantes : (1) Ouvrez Xiaohongshu et cliquez sur le bouton « Mon » dans le coin inférieur droit (2) Sur la page du centre personnel, recherchez « Paramètres » et cliquez dessus (3) Faites défiler vers le bas et recherchez « ; "Vider le cache". Cliquez sur OK. Après avoir vidé le cache, entrez à nouveau dans Xiaohongshu et essayez de publier des photos pour voir si le problème de sauvegarde automatique est résolu. 2. Mettez à jour la version Xiaohongshu pour vous assurer que votre Xiaohongshu

Connectez-vous à Ubuntu en tant que superutilisateur Connectez-vous à Ubuntu en tant que superutilisateur Mar 20, 2024 am 10:55 AM

Dans les systèmes Ubuntu, l'utilisateur root est généralement désactivé. Pour activer l'utilisateur root, vous pouvez utiliser la commande passwd pour définir un mot de passe, puis utiliser la commande su- pour vous connecter en tant que root. L'utilisateur root est un utilisateur disposant de droits d'administration système illimités. Il dispose des autorisations nécessaires pour accéder et modifier les fichiers, la gestion des utilisateurs, l'installation et la suppression de logiciels et les modifications de la configuration du système. Il existe des différences évidentes entre l'utilisateur root et les utilisateurs ordinaires. L'utilisateur root possède la plus haute autorité et des droits de contrôle plus étendus sur le système. L'utilisateur root peut exécuter des commandes système importantes et modifier des fichiers système, ce que les utilisateurs ordinaires ne peuvent pas faire. Dans ce guide, j'explorerai l'utilisateur root Ubuntu, comment se connecter en tant que root et en quoi il diffère d'un utilisateur normal. Avis

Comment publier des photos dans les commentaires TikTok ? Où se trouve l'entrée des photos dans la zone commentaire ? Comment publier des photos dans les commentaires TikTok ? Où se trouve l'entrée des photos dans la zone commentaire ? Mar 21, 2024 pm 09:12 PM

Avec la popularité des courtes vidéos Douyin, les interactions des utilisateurs dans la zone de commentaires sont devenues plus colorées. Certains utilisateurs souhaitent partager des images en commentaires pour mieux exprimer leurs opinions ou émotions. Alors, comment publier des photos dans les commentaires TikTok ? Cet article répondra à cette question en détail et vous fournira quelques conseils et précautions connexes. 1. Comment publier des photos dans les commentaires Douyin ? 1. Ouvrez Douyin : Tout d'abord, vous devez ouvrir l'application Douyin et vous connecter à votre compte. 2. Recherchez la zone de commentaire : lorsque vous parcourez ou publiez une courte vidéo, recherchez l'endroit où vous souhaitez commenter et cliquez sur le bouton "Commentaire". 3. Saisissez le contenu de votre commentaire : saisissez le contenu de votre commentaire dans la zone de commentaire. 4. Choisissez d'envoyer une photo : Dans l'interface de saisie du contenu des commentaires, vous verrez un bouton « image » ou un bouton « + », cliquez sur

Le processus de fonctionnement de l'hôte de service WIN10 occupant trop de CPU Le processus de fonctionnement de l'hôte de service WIN10 occupant trop de CPU Mar 27, 2024 pm 02:41 PM

1. Tout d'abord, nous cliquons avec le bouton droit sur l'espace vide de la barre des tâches et sélectionnons l'option [Gestionnaire des tâches], ou cliquons avec le bouton droit sur le logo de démarrage, puis sélectionnons l'option [Gestionnaire des tâches]. 2. Dans l'interface du Gestionnaire des tâches ouverte, nous cliquons sur l'onglet [Services] à l'extrême droite. 3. Dans l'onglet [Service] ouvert, cliquez sur l'option [Ouvrir le service] ci-dessous. 4. Dans la fenêtre [Services] qui s'ouvre, cliquez avec le bouton droit sur le service [InternetConnectionSharing(ICS)], puis sélectionnez l'option [Propriétés]. 5. Dans la fenêtre des propriétés qui s'ouvre, remplacez [Ouvrir avec] par [Désactivé], cliquez sur [Appliquer] puis cliquez sur [OK]. 6. Cliquez sur le logo Démarrer, puis cliquez sur le bouton d'arrêt, sélectionnez [Redémarrer] et terminez le redémarrage de l'ordinateur.

Comment faire sortir les images ppt une par une Comment faire sortir les images ppt une par une Mar 25, 2024 pm 04:00 PM

Dans PowerPoint, il est courant d'afficher les images une par une, ce qui peut être réalisé en définissant des effets d'animation. Ce guide détaille les étapes de mise en œuvre de cette technique, y compris la configuration de base, l'insertion d'images, l'ajout d'une animation et l'ajustement de l'ordre et du timing de l'animation. De plus, des paramètres et ajustements avancés sont fournis, tels que l'utilisation de déclencheurs, l'ajustement de la vitesse et de l'ordre de l'animation et la prévisualisation des effets d'animation. En suivant ces étapes et conseils, les utilisateurs peuvent facilement configurer les images pour qu'elles apparaissent les unes après les autres dans PowerPoint, améliorant ainsi l'impact visuel de la présentation et attirant l'attention du public.

Un guide complet des activités de 'Gloire des Rois' Un guide complet des activités de 'Gloire des Rois' Mar 24, 2024 pm 12:36 PM

King of Glory a lancé l'événement Let's Go Together to Flower Season. Les joueurs qui participent à l'événement peuvent recevoir des cadres d'avatar gratuits et de nombreux cadeaux. L'événement est limité dans le temps et offre aux joueurs un total de quatre niveaux. vous a apporté un guide de l'événement Allons à la saison des fleurs, j'espère qu'il pourra aider tout le monde à relever le défi de niveau. Roi de gloire, allez ensemble à la saison de floraison. Roi de gloire, allez ensemble à la saison de floraison Introduction au gameplay de l'activité : 1. Aller ensemble à la saison de floraison est une activité de retournement de cartes et les joueurs doivent se retourner. sur les cartes pour passer le niveau. 2. Les joueurs peuvent retourner les cartes en accomplissant des tâches et en obtenant de la rosée florale pendant l'événement. 3. Toutes les quatre cartes d'autorisation du panneau d'activité sont reliées en une ligne (y compris des lignes horizontales, des lignes verticales et des lignes diagonales) pour passer un petit niveau. 4. Chaque fois que vous terminez un niveau, vous pouvez obtenir les récompenses correspondantes, et vous pouvez également obtenir des récompenses supplémentaires en aidant vos amis à retourner les cartes. en direct

Comment disposer deux images côte à côte dans un document wps Comment disposer deux images côte à côte dans un document wps Mar 20, 2024 pm 04:00 PM

Lors de l'utilisation du logiciel bureautique WPS, nous avons constaté que non seulement un formulaire est utilisé, mais que des tableaux et des images peuvent être ajoutés au texte, des images peuvent également être ajoutées au tableau, etc. Ceux-ci sont tous utilisés ensemble pour créer le contenu de l'ensemble du document. paraître plus riche, si vous devez insérer deux images dans le document et qu’elles doivent être disposées côte à côte. Notre prochain cours résoudra ce problème : comment placer deux images côte à côte dans un document wps. 1. Tout d'abord, vous devez ouvrir le logiciel WPS et trouver l'image que vous souhaitez ajuster. Faites un clic gauche sur l'image et une barre de menu apparaîtra, sélectionnez "Mise en page". 2. Sélectionnez « Emballage serré » dans l'habillage du texte. 3. Une fois que toutes les images dont vous avez besoin ont été confirmées comme étant définies sur « Habillage de texte serré », vous pouvez faire glisser les images vers la position appropriée et cliquer sur la première image.

See all articles