Maison php教程 php手册 php高效快速获取图片尺寸的方法

php高效快速获取图片尺寸的方法

May 25, 2016 pm 04:47 PM
fopen

在 php 获取图片尺寸的方法我们可以使用 getimagesize 获取图片尺寸的效率是很低的,首先需要获取整个的图片信息,然后再进行操作,下面的例子更科学算法更好,我们一起来看看吧。

下方法可以用于快速获取图片尺寸信息

1.获取JPEG格式图片的尺寸信息

<?php
/*
* 获取JPEG格式图片的尺寸信息,并且不需要下载/读取整个图片。
* 经测试这个函数不是对所有JPEG格式的图片都有效。
* http://www.phprm.com
*/
// Retrieve JPEG width and height without downloading/reading entire image.
function getjpegsize($img_loc) {
    $handle = fopen($img_loc, "rb") or die("Invalid file stream.");
    $new_block = NULL;
    if(!feof($handle)) {
        $new_block = fread($handle, 32);
        $i = 0;
        if($new_block[$i]=="xFF" && $new_block[$i+1]=="xD8" && $new_block[$i+2]=="xFF" && $new_block[$i+3]=="xE0") {
            $i += 4;
            if($new_block[$i+2]=="x4A" && $new_block[$i+3]=="x46" && $new_block[$i+4]=="x49" && $new_block[$i+5]=="x46" && $new_block[$i+6]=="x00") {
                
// Read block size and skip ahead to begin cycling through blocks in search of SOF marker
                $block_size = unpack("H*", $new_block[$i] . $new_block[$i+1]);
                $block_size = hexdec($block_size[1]);
                while(!feof($handle)) {
                    $i += $block_size;
                    $new_block .= fread($handle, $block_size);
                    if($new_block[$i]=="xFF") {
                        
// New block detected, check for SOF marker
                        $sof_marker = array("xC0", "xC1", "xC2", "xC3", "xC5", "xC6", "xC7", "xC8", "xC9", "xCA", "xCB", "xCD", "xCE", "xCF");
                        if(in_array($new_block[$i+1], $sof_marker)) {
                            
// SOF marker detected. Width and height information is contained in bytes 4-7 after this byte.
                            $size_data = $new_block[$i+2] . $new_block[$i+3] . $new_block[$i+4] . $new_block[$i+5] . $new_block[$i+6] . $new_block[$i+7] . $new_block[$i+8];
                            $unpacked = unpack("H*", $size_data);
                            $unpacked = $unpacked[1];
                            $height = hexdec($unpacked[6] . $unpacked[7] . $unpacked[8] . $unpacked[9]);
                            $width = hexdec($unpacked[10] . $unpacked[11] . $unpacked[12] . $unpacked[13]);
                            return array($width, $height);
                        } else {
                            
// Skip block marker and read block size
                            $i += 2;
                            $block_size = unpack("H*", $new_block[$i] . $new_block[$i+1]);
                            $block_size = hexdec($block_size[1]);
                        }
                    } else {
                        return FALSE;
                    }
                }
            }
        }
    }
    return FALSE;
}
?>
Copier après la connexion

2.

$url=&#39;http://www.phprm.com /images/201203/08/1331189004_28093400.jpg&#39;;
$image_content = file_get_contents($url);
$image = imagecreatefromstring($image_content);
$width = imagesx($image);
$height = imagesy($image);
echo $width.&#39;*&#39;.$height."nr";
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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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 résoudre PHP Avertissement : fopen() : l'opération SSL a échoué dans file.php à la ligne X Comment résoudre PHP Avertissement : fopen() : l'opération SSL a échoué dans file.php à la ligne X Aug 25, 2023 am 09:22 AM

Comment résoudre PHPWarning:fopen():SSLoperationfailedinfile.phponlineX Dans la programmation PHP, nous utilisons souvent la fonction fopen pour ouvrir des fichiers ou des URL et effectuer des opérations associées. Cependant, lorsque vous utilisez la fonction fopen, vous rencontrerez parfois quelque chose de similaire à Warning:fopen():SSLoperationfailedinfile.p

Comment résoudre PHP Avertissement : fopen() : échec d'ouverture du flux : aucun fichier ou répertoire de ce type Comment résoudre PHP Avertissement : fopen() : échec d'ouverture du flux : aucun fichier ou répertoire de ce type Aug 19, 2023 am 10:44 AM

Comment résoudre PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory Dans le processus d'utilisation du développement PHP, nous rencontrons souvent des problèmes de fonctionnement des fichiers, dont "PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory"

Comment résoudre l'avertissement PHP : fopen() : échec d'ouverture du flux : autorisation refusée Comment résoudre l'avertissement PHP : fopen() : échec d'ouverture du flux : autorisation refusée Aug 20, 2023 pm 01:45 PM

Comment résoudre PHPWarning:fopen():failedtoopenstream:Permissiondenied Dans le processus de développement de programmes PHP, nous rencontrons souvent des messages d'erreur, tels que PHPWarning:fopen():failedtoopenstream:Permissiondenied. Cette erreur est généralement due à des autorisations de fichier ou de répertoire incorrectes

Utilisation de la fonction fopen dans Matlab Utilisation de la fonction fopen dans Matlab Nov 28, 2023 am 11:03 AM

Dans Matlab, la fonction fopen est utilisée pour ouvrir un fichier et renvoyer l'identifiant du fichier pour des opérations de lecture ou d'écriture ultérieures sur le fichier. Sélectionnez les options d'autorisation appropriées pour ouvrir le fichier selon vos besoins et fermez-le rapidement une fois l'opération terminée. Il convient de noter qu'après avoir ouvert un fichier, vous devez vous assurer que le fichier est fermé à temps lorsqu'il n'est plus nécessaire de libérer des ressources système. De plus, si l'ouverture du fichier échoue ou si une erreur d'opération se produit, le mécanisme de gestion des erreurs peut être utilisé pour la gérer en conséquence.

Comment utiliser fopen, fwrite et fclose en php pour les opérations sur les fichiers ? Comment utiliser fopen, fwrite et fclose en php pour les opérations sur les fichiers ? Jun 01, 2023 am 08:46 AM

Dans le développement PHP, les opérations sur les fichiers sont très courantes. Dans des circonstances normales, nous devons effectuer la lecture, l'écriture, la suppression et d'autres opérations de fichiers. Parmi elles, la fonction fopen et la fonction fread peuvent être utilisées pour lire le fichier, et les fonctions fopen, fwrite et fclose peuvent être utilisées pour écrire le fichier. Cet article présentera comment PHP utilise fopen, fwrite et fclose pour effectuer des opérations sur les fichiers. 1. Fonction fopen La fonction fopen permet d'ouvrir des fichiers. Sa syntaxe est la suivante : r.

En langage C, utilisez la fonction fopen() pour ouvrir un fichier existant en mode écriture En langage C, utilisez la fonction fopen() pour ouvrir un fichier existant en mode écriture Aug 27, 2023 pm 10:33 PM

La méthode fopen() en C est utilisée pour ouvrir le fichier spécifié. Prenons un exemple pour comprendre la syntaxe du problème. FILE*fopen(filename,mode). Les modes suivants sont valides pour utiliser fopen() pour ouvrir des fichiers : 'r', 'w', 'a', 'r+', 'w+. ', 'a+'. Pour plus d'informations, veuillez visiter la bibliothèque C function-fopen()

Avertissement PHP : fopen() : échec d'ouverture du flux : aucun fichier ou répertoire de ce type dans file.php à la ligne X Avertissement PHP : fopen() : échec d'ouverture du flux : aucun fichier ou répertoire de ce type dans file.php à la ligne X Aug 26, 2023 pm 12:46 PM

Comment résoudre PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectoryinfile.phponlineX Lors du développement et de l'exécution de programmes PHP, nous rencontrons parfois PHPWarning:fopen():failedtoopenstream:Nosuchfileor

Quelle est l'utilisation de la fonction fopen en php Quelle est l'utilisation de la fonction fopen en php Sep 18, 2021 pm 03:43 PM

L'utilisation de la fonction fopen en php est "fopen(filename, mode, include_path, context)". La fonction fopen() est utilisée pour ouvrir un fichier ou une URL. Si elle échoue, elle renvoie false avec un message d'erreur.

See all articles