使用宽度属性自动调整图像大小并将其保存在计算机上

发布于 2024-12-11 22:11:53 字数 165 浏览 0 评论 0原文

问题:在设计网站时我有时会使用 width: xxx;在图像上。这样我就可以调整图像。然而,这会产生规模上的开销。

解决方案:自动获取所有具有 width: 属性的图像。将它们的大小调整为 :width 属性并保持尺寸。将文件另存为计算机上的 .gif。

有谁知道一个好的解决方案吗?

Problem: When designing the website I sometimes used width: xxx; on images. That way I was able to adjust the images. However, that creates overhead in size.

Solution: Automatically fetch all images which have a width: propery. Resize them to that :width property keeping the dimensions. Save the file as a .gif on the computer.

Does anyone know a good solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

单身情人 2024-12-18 22:11:53

您可以使用 GD 来完成此操作(如果您的 php 安装启用了 GD 或 GD2)
http://php.net/image

<?php
    function resizeImage($image,$width=null,$height=null){
        if(!$width and !$height) return false;
        $info = getimagesize($image);

        if(!$height) $height = $width/$info[0]*$info[1];
        if(!$width) $width = $height/$info[1]*$info[0];

        $new = newEmptyImage($width, $height);
        $resource = imagecreatefromgif($image);

        imagecopyresampled($new,$resource,0,0,0,0,$width,$height,$info[0],$info[1]);

        return imagegif($new,$image);
    }
    function newEmptyImage($width,$height){
        $new = imagecreatetruecolor($width,$height);
        imagealphablending($new, false);
        imagesavealpha($new, true);
        $bg = imagecolorallocatealpha($new,0,0,0,127);
        imagefill($new,0,0,$bg);

        return $new;
    }
?>

现在您只需调用 resizeImage("example.gif", 120);

You can do it using GD (if you have GD or GD2 enabled on your php instalation)
http://php.net/image

<?php
    function resizeImage($image,$width=null,$height=null){
        if(!$width and !$height) return false;
        $info = getimagesize($image);

        if(!$height) $height = $width/$info[0]*$info[1];
        if(!$width) $width = $height/$info[1]*$info[0];

        $new = newEmptyImage($width, $height);
        $resource = imagecreatefromgif($image);

        imagecopyresampled($new,$resource,0,0,0,0,$width,$height,$info[0],$info[1]);

        return imagegif($new,$image);
    }
    function newEmptyImage($width,$height){
        $new = imagecreatetruecolor($width,$height);
        imagealphablending($new, false);
        imagesavealpha($new, true);
        $bg = imagecolorallocatealpha($new,0,0,0,127);
        imagefill($new,0,0,$bg);

        return $new;
    }
?>

now you can simply call resizeImage("example.gif",120);

书间行客 2024-12-18 22:11:53

我编写了一段 JavaScript 代码,使用 将文档中的所有图像替换为调整大小以适合的版本。 小提琴:http://jsfiddle.net/F2LK2/

function imageToFit(img) {
    var width = img.width;
    var height = img.height;
    var canvas = document.createElement('canvas');
    var context = canvas.getContext('2d');
    canvas.width = width;
    canvas.height = height;
    context.drawImage(img, 0, 0, width, height);
    img.parentNode.replaceChild(canvas, img);
}
window.onload = function(){
    var image = document.getElementsByTagName("img");
    for(var i=image.length-1; i>=0; i--){
        //Backwards, because we replace <img> by <canvas>
        imageToFit(image[i]);
    }
}

如果您感兴趣在编写 Canvas 元素脚本时,请查看 Mozilla 的 Canvas tuturial

I've written a piece of JavaScript code to replace all images in a document by a resized-to-fit version, using <canvas>. Fiddle: http://jsfiddle.net/F2LK2/

function imageToFit(img) {
    var width = img.width;
    var height = img.height;
    var canvas = document.createElement('canvas');
    var context = canvas.getContext('2d');
    canvas.width = width;
    canvas.height = height;
    context.drawImage(img, 0, 0, width, height);
    img.parentNode.replaceChild(canvas, img);
}
window.onload = function(){
    var image = document.getElementsByTagName("img");
    for(var i=image.length-1; i>=0; i--){
        //Backwards, because we replace <img> by <canvas>
        imageToFit(image[i]);
    }
}

If you're interested in scripting the Canvas element, have a look at Mozilla's Canvas tuturial.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文