代码之家  ›  专栏  ›  技术社区  ›  Conex

动态图像大小调整

  •  2
  • Conex  · 技术社区  · 14 年前

    我想在这个模板的每个范围内使用sprite和3种类型的图像,但我正在寻找其他想法,php gd也许?有什么python解决方案吗?

    5 回复  |  直到 12 年前
        1
  •  2
  •   Rafe Kettler    14 年前

    Python Imaging Library 将为您提供动态调整大小、处理等功能。

        2
  •  4
  •   Aurel Bílý    14 年前

    好吧,为了调整大小,当然最好使用GD。。。但我想是有索引的。这样你就有了一个上传脚本,可以自动生成其他大小的图片,并将它们保存在某个地方。

        3
  •  2
  •   Alan Geleynse buhbang    14 年前

    如果要调整到已知的分辨率集,只需调整一次图像大小并将其存储。

    如果您需要为任何可能的分辨率调整大小,您将需要一个库来为您这样做。在PHP中, GD ImageMagik 都很好。

    如果这样做,可能需要为最常见的分辨率添加缓存。这将占用更多的磁盘空间,但将节省每次重新计算所有图像的成本。

        4
  •  1
  •   Gareth Rees    14 年前

    为什么不使用JavaScript在客户机上调整图像的大小呢?

    <head>
    <script>
    function resize() {
        ww = window.innerWidth
        wh = window.innerHeight
        photo = document.getElementById("photo")
        // You probably wouldn't actually make the image fill the window, you'd pick
        // some appropriate size.
        photo.setAttribute("width", ww)
        photo.setAttribute("height", wh)
    }
    </head>
    <body onload="resize()" onresize="resize()">
    <img id="photo" src="photo.jpg">
    
        5
  •  1
  •   Blue Peppers    14 年前

    获取内部窗口宽度相当困难,因为不同的浏览器使用不同的变量。然而,这是我在我的网站上使用的。它相当可靠地获取内部窗口宽度,然后设置图像宽度/高度。修改此代码以设置所需图像的src应该不会太难。

    function set_image_sizes(){
        if (window.innerHeight != undefined) {
            height = window.innerHeight;
            width = window.innerWidth;
        } else if (document.documentElement.clientHeight > 0) {
            height = document.documentElement.clientHeight;
            width = document.documentElement.clientWidth;
        } else {
            height = document.body.clientHeight;
            width = document.body.clientWidth;
        }
    
        $('#image').css('height', height);
        $('#image').css('width', width);
    
    }