调整图像大小(Resizing images)

2019-09-24 07:02发布

我工作在PHP论坛程序。 在签名现场我有
<img src='randomimage.png'><br>bla blah

如果图像是比外地大它横跨我的表,看起来不错。 有没有什么办法,如果其过大,重新大小的图像?

对不起,我的英文不好,感谢您的阅读

编辑:问题是,它不仅是形象。 它的图像和文本“大文本”。

此致,汤姆

Answer 1:

PHP ...

您可以重新大小的图像与gdlibrary(参见: PHP / GD -裁剪和调整图像尺寸 ),但如果你不是已经相当熟悉PHP可能是复杂的。

jQuery的/ JavaScript的

一个插件存在可动态调整大小的图像(拉伸该图像本身)。 退房maxSide: http://css-tricks.com/maxside-jquery-plugin-and-how-to/

CSS ...

保持成像驯服了签名一个快速的解决方案是限制使用CSS的溢出:

<img src="randomimage.png" />

<div class="sigBox"><img src="randomimage.png" /></div>

用下面的CSS:

div.sigBox { overflow:hidden; width:50px; height:50px; }

这将隐藏大量的图像,而不是让他们歪曲您的内容。



Answer 2:

你可能会首先要拍摄的图像尺寸。 然后就可以保持一个高宽比,而通过简单的HTML 高度设定新的大小和宽度属性的img标签。

您可能还需要考虑本地托管签名。 当用户上传的图像,你可以做所有的调整大小,然后通过GD库 。



Answer 3:

<img src="/img/foo.png" height="100" width="100" />

高度和宽度以像素为单位。 这是,如果你想在调整HTML图像(其下载完整的图像,然后“squishes”它周围的指定的大小)。

如果你想以编程方式改变物理图像文件,检查出的PHP GD功能: http://us.php.net/manual/en/ref.image.php



Answer 4:

对于一个论坛上,我管理,我们把签名块在divoverflow: hidden在CSS设置。 这样一来,放在一个巨大的600×300的图像签名和谁的一段文字这样做获得任何好处用户 - 只有指定的400x90区域出现了。 看来效果不错。



Answer 5:

作为JoshL和约翰牛逼指出的那样,你可以使用内置的图像处理支持动态改变图像的PHP的。 在你的情况,你可以简单地做一个PHP脚本,将加载图像,其调整到合适的尺寸,成为它并保存调整后的图像的缓存副本,以避免在后续的请求处理开销。

你最终会使用这样的事情在你的HTML代码

<img src="img.php?file=foobar.jpg">


Answer 6:

使用Javascript:

function changeSize(imageOrTextId, tableId)
{
    if (document.getElementById(imageOrTextId).width > document.getElementById(tableId).width)
    {
        document.getElementById(imageOrTextId).width = document.getElementById(tableId).width;
    }
}

例如HTML:

<body onload="changeSize('image1', 'table1')">
    <table id="table1" width="400" height="400">
        <img src="randomimage.png" id="image1" />
    </table>
</body>

编辑:它看起来像约翰牛逼也贴出这样做的这样......对不起,我没有发布之前注意到它。



Answer 7:

使用CSS

<img src="randomimage.png" style="max-width:100px;max-height:100px;" />

这适用于所有我测试浏览器



Answer 8:

     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
             <html xmlns="http://www.w3.org/1999/xhtml">
              <head>
             <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
        </head>

       <body>
        <?php
      $thumb_width = 100;
      $thumb_height = 100;
        $full = imagecreatefromjpeg('sample.jpg');
        $width = imagesx($full);
     $height = imagesy($full);

      if($width < $height) {
$divisor = $width / $thumb_width;
       } 
       else {
$divisor = $height / $thumb_height;
     }

    $new_width= ceil($width / $divisor);
  $new_height = ceil($height / $divisor);

  //get center point
  $thumbx = floor(($new_width - $thumb_width) / 2);
  $thumby = floor(($new_height - $thumb_height)/2);

 $new_image = imagecreatetruecolor($new_width, $new_height);
  $new_image_fixed = imagecreatetruecolor($thumb_width, $thumb_height);

   imagecopyresized($new_image, $full, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

   imagecopyresized($new_image_fixed, $new_image, 0, 0, $thumbx, $thumby, $thumb_width,                                      $thumb_height, $thumb_width, $thumb_height);

     imagejpeg($new_image, "new_sample.jpg", 100);
    imagejpeg($new_image_fixed, "new_sample_fixed.jpg", 100);
     ?>
     </body>
      </html>


文章来源: Resizing images