我想在我的网页上展示一部分图片。假设原始格式为1024x768,则显示的图像必须为100x768。它不是重新尺寸,而是从0,0像素开始的简单切割。有什么建议吗?
答案 0 :(得分:8)
使用CSS的剪辑属性:
img { position:absolute; clip:rect(0px 60px 200px 0px) }
或者在容器上使用溢出:
<div style="overflow:hidden; width:100px; height:76px;">
<img src="myImage.jpg" />
</div>
答案 1 :(得分:3)
您可以使用CSS clip仅显示图片的一部分,例如:
img {
position:absolute;
clip:rect(0px,100px,768px,0px);
}
答案 2 :(得分:1)
裁剪图像或使用现有的库,WideImage是此类操作的最佳选择之一。
答案 3 :(得分:1)
使用图像编辑器将图像上载到服务器之前裁剪图像。除非由于某种原因你需要加载整个图像但是切断了......
答案 4 :(得分:1)
另一种解决方案是将图像作为背景图像插入。
<div style="width: 768px; height: 100px; background: url(theimage.jpg) no-repeat left top;"></div>
答案 5 :(得分:0)
请注意,CSS解决方案实际上下载了整个图像,然后只显示它的顶部。
根据使用情况,我建议使用动态裁剪脚本或缓存预裁剪图像。
裁剪脚本类似于:
<?php
// get parameters
$fname = (string) $_GET['f'];
$top = (int) $_GET['h'];
// load original
$old = imagecreatefromjpeg($fname);
list($width, $height) = getimagesize($fname);
// N.B. this reloads the whole image! Any way to get
// width/height directly from $old resource handle??
// create new canvas
$new = imagecreatetruecolor($width, $top);
// copy portion of image
imagecopy($dest, $src, 0, 0, 0, 0, $width, $top);
// Output and free from memory
header('Content-Type: image/jpeg');
imagejpg($new);
?>
将从您的网页调用,如:
<img src="crop.php?f=myimg.jpg&h=100" />