来自url的图像的PHP缩略图

时间:2013-02-19 14:45:15

标签: php image url thumbnails

我正在使用代码,首先检查文件夹中的文件名,然后创建url。在url中找到特殊的行,其中是一个imagefile。它正确显示图像和地址,但如果图像太大,需要花费很长时间。是否可以创建缩略图并显示此图像而不是图像?谢谢!

require_once('simple_html_dom.php');
$files = scandir('files/');
foreach($files as $file) {
    if($file == '.' || $file == '..') continue;
    $file = basename($file, ".html");
    $url = 'http://address.com/test/'.$file;
    $html = file_get_html($url);
foreach($html->find('img') as $element) {
    if (strpos($element,'address.com') !== false) {
    $url = $element->src;
    echo $url.'</br>';
    echo '<IMG SRC="',$url, '" WIDTH="128" HEIGHT="96" BORDER="0" ALT="" /><br/>';
    }
    }
}

2 个答案:

答案 0 :(得分:0)

您想使用CSS clip:rect(50px 218px 155px 82px);

设置宽度和高度不会影响ACTUAL图像大小,因此加载时间仍然需要很长时间。请参阅本文逐步div创建和css编码。

http://www.seifi.org/css/creating-thumbnails-using-the-css-clip-property.html

另外作为附注,没有什么比实际上做TUMBNAILS更好!有服务端缩略图生成器,但这是你实际制作tumbnails时最好的。

答案 1 :(得分:0)

我在How to proportionally resize uploaded images上写了一篇博文,你应该可以调整the sample I wrote的代码来做你想做的事。

如果我的网站将来死亡,请粘贴以下代码。

<?php

// *snip* Removed form stuff
$image = imagecreatefromjpeg($pathToImage);


// Target dimensions
$max_width = 240;
$max_height = 180;


// Calculate new dimensions
$old_width      = imagesx($image);
$old_height     = imagesy($image);
$scale          = min($max_width/$old_width, $max_height/$old_height);
$new_width      = ceil($scale*$old_width);
$new_height     = ceil($scale*$old_height);


// Create new empty image
$new = imagecreatetruecolor($new_width, $new_height);


// Resample old into new
imagecopyresampled($new, $image, 
        0, 0, 0, 0, 
        $new_width, $new_height, $old_width, $old_height);


// Catch the image data
ob_start();
imagejpeg($new, NULL, 90);
$data = ob_get_clean();


// Destroy resources
imagedestroy($image);
imagedestroy($new);


// Output image data
header("Content-type: image/jpeg", true, 200);
echo $data;

您可能希望将其添加到函数中并将其输出更改为文件。然后在foreach循环中生成缩略图并链接到缩略图而不是原始缩略图。您还应该检查是否已经为图像创建了缩略图,这样您就不会对每张图像执行多次。