"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso recuperar dimensões de imagens em PHP mais rapidamente do que usar `getimagesize`?

Como posso recuperar dimensões de imagens em PHP mais rapidamente do que usar `getimagesize`?

Publicado em 2024-11-04
Navegar:758

How Can I Retrieve Image Dimensions in PHP Faster Than Using `getimagesize`?

Explorando uma recuperação mais rápida de dimensões de imagem em PHP

No domínio da programação PHP, pode se tornar complicado recuperar dimensões de imagem usando a função getimagesize padrão ao lidar com um grande volume de imagens remotas. Para resolver esse gargalo, vamos nos aprofundar em uma abordagem alternativa que promete desempenho extremamente rápido.

Ao aproveitar a função file_get_contents, podemos ler apenas um número limitado de bytes de uma imagem. Esses dados podem então ser examinados meticulosamente para determinar as dimensões da imagem.

Para embarcar nessa abordagem, vamos considerar o seguinte trecho de código:

function ranger($url){
    $headers = array(
    "Range: bytes=0-32768"
    );

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}

$start = microtime(true);

$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg";

$raw = ranger($url);
$im = imagecreatefromstring($raw);

$width = imagesx($im);
$height = imagesy($im);

$stop = round(microtime(true) - $start, 5);

echo $width." x ".$height." ({$stop}s)";

Esta função utiliza a função ranger para recuperar uma pequena parte dos dados da imagem. Posteriormente, imagecreatefromstring é empregado para gerar um recurso de imagem a partir dos dados recuperados. Por último, imagesx e imagesy nos fornecem a largura e a altura da imagem, respectivamente.

Quando testada com um URL de imagem, essa abordagem demonstrou uma velocidade impressionante, como pode ser visto abaixo:

640 x 480 (0.20859s)

Neste caso, extrair as dimensões da imagem levou apenas 0,20859 segundos, destacando a eficiência deste método.

Aproveitando o poder de leitura de uma quantidade limitada de dados a partir de imagens remotas, desenvolvemos uma maneira extremamente rápida e eficiente de obter dimensões de imagens em PHP. Essa técnica permite que você enfrente o desafio de processar inúmeras imagens com facilidade e rapidez.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3