-2

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

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/>';
    }
    }
}
4

2 回答 2

0

你想使用 CSSclip:rect(50px 218px 155px 82px);

设置宽度和高度不会减小实际图像大小,因此加载时间仍然会一样长。请参阅这篇关于逐步div创建和css编码的文章。

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

另外作为旁注,没有什么比真正制作 TUMBNAILS 更好的了!有服务侧缩略图生成器,但这是您在不实际制作缩略图的情况下获得的最佳效果。

于 2013-02-19T15:29:35.837 回答
0

我写了一篇关于如何按比例调整上传图像大小的博客文章,你应该能够调整我写的示例中的代码来做你想做的事。

粘贴下面的代码以防我的网站将来死机。

<?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 循环中生成缩略图并链接到缩略图而不是原始缩略图。您还应该检查您是否已经为图像创建了缩略图,这样您就不会为每个图像重复一次。

于 2014-12-08T11:22:18.437 回答