我工作在PHP论坛程序。 在签名现场我有
“ <img src='randomimage.png'><br>bla blah
”
如果图像是比外地大它横跨我的表,看起来不错。 有没有什么办法,如果其过大,重新大小的图像?
对不起,我的英文不好,感谢您的阅读
编辑:问题是,它不仅是形象。 它的图像和文本“大文本”。
此致,汤姆
我工作在PHP论坛程序。 在签名现场我有
“ <img src='randomimage.png'><br>bla blah
”
如果图像是比外地大它横跨我的表,看起来不错。 有没有什么办法,如果其过大,重新大小的图像?
对不起,我的英文不好,感谢您的阅读
编辑:问题是,它不仅是形象。 它的图像和文本“大文本”。
此致,汤姆
您可以重新大小的图像与gdlibrary(参见: PHP / GD -裁剪和调整图像尺寸 ),但如果你不是已经相当熟悉PHP可能是复杂的。
一个插件存在可动态调整大小的图像(拉伸该图像本身)。 退房maxSide: http://css-tricks.com/maxside-jquery-plugin-and-how-to/
保持成像驯服了签名一个快速的解决方案是限制使用CSS的溢出:
<img src="randomimage.png" />
变
<div class="sigBox"><img src="randomimage.png" /></div>
用下面的CSS:
div.sigBox { overflow:hidden; width:50px; height:50px; }
这将隐藏大量的图像,而不是让他们歪曲您的内容。
你可能会首先要拍摄的图像尺寸。 然后就可以保持一个高宽比,而通过简单的HTML 高度设定新的大小和宽度属性的img
标签。
您可能还需要考虑本地托管签名。 当用户上传的图像,你可以做所有的调整大小,然后通过GD库 。
<img src="/img/foo.png" height="100" width="100" />
高度和宽度以像素为单位。 这是,如果你想在调整HTML图像(其下载完整的图像,然后“squishes”它周围的指定的大小)。
如果你想以编程方式改变物理图像文件,检查出的PHP GD功能: http://us.php.net/manual/en/ref.image.php
对于一个论坛上,我管理,我们把签名块在div
与overflow: hidden
在CSS设置。 这样一来,放在一个巨大的600×300的图像签名和谁的一段文字这样做获得任何好处用户 - 只有指定的400x90区域出现了。 看来效果不错。
作为JoshL和约翰牛逼指出的那样,你可以使用内置的图像处理支持动态改变图像的PHP的。 在你的情况,你可以简单地做一个PHP脚本,将加载图像,其调整到合适的尺寸,成为它并保存调整后的图像的缓存副本,以避免在后续的请求处理开销。
你最终会使用这样的事情在你的HTML代码
<img src="img.php?file=foobar.jpg">
使用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>
编辑:它看起来像约翰牛逼也贴出这样做的这样......对不起,我没有发布之前注意到它。
使用CSS
<img src="randomimage.png" style="max-width:100px;max-height:100px;" />
这适用于所有我测试浏览器
<!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>