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.
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