【问题标题】:add canvas if height < X如果高度 < X,则添加画布
【发布时间】:2011-12-20 23:18:29
【问题描述】:

对不起,我糟糕的英语,大约 3 天前我很困,为此苦苦挣扎。
我正在使用“slideViewerPro 1.5”来显示图片库 (PHP + JS)。
但是,这个 js 脚本强制我将所有图像都设置为相同大小。
所以,当我有一张垂直的图片时,我想在上面添加一些白色的画布,这样它就不会变形。
我试过离线,使用 Irfanview。不会工作。
我试过破解一些 GD 和 PHP 脚本。也不行。
弄乱 slideViewerPro javascript 源代码......两者都没有。
另外...我已经阅读了大约 20 次,但仍然无法确定 GD 是否是一个合适的解决方案。 http://www.rubblewebs.co.uk/imagemagick/GDexamples.php

有人可以启发我吗?!

【问题讨论】:

  • 你能给我们展示一个示例页面或代码吗?
  • 将鼠标放在缩略图上,它会给你宽度和高度。
  • 我现在正在尝试这个:获取图像宽度;如果小于 550,则在左侧添加画布(因为框架始终为 550x325。但是 GD 和我做得不好:)
  • HMM...这可能有效,但不是多张图片,只有一张:stackoverflow.com/questions/2933170/…
  • 也试试看,基本上就是用两张图片,一张空白,从一张复制到另一张,大图。

标签: php javascript html gd


【解决方案1】:

我希望这有助于使用 GD:

$im=imagecreatefrompng($filename);
$width=imagesx($im);
$height=imagesy($im);
$newwidth = 550;
$newheight = 325;
$output = imagecreatetruecolor($newwidth, $newheight);
imagecopymerge($output, $im, ($width<550?550-$width:0), ($height<325?325-$height:0), 0, 0, $width, $height,0);
imagepng($output);
imagedestroy($output);
imagedestroy($im);

$filename 是文件名,然后我们创建一个大小为 550x325 的空白图像并将图像粘贴到新的画布上

【讨论】:

  • 我得到一张黑色画布/图片。 (必须将 png 更改为 jpeg)这有什么不同?
  • $im=imagecreatefrompng($filename); 使用 png,但您可以将其更改为任何内容,它不应该有所作为...我不是 GD 专家,但我在脚本中有一个这样的功能我正在使用将图像向右移动以进行打印。
  • 无法让它工作。将 $output 更改为 $im ,是的,我得到了原始图像。 imagecopymerge 出了点问题:|
  • 也许只做 imagecopy 而不是 imagecopymerge 并把最后一个变量的“0”去掉?
  • Woo hooo :) 谢谢蒂姆!它正在工作:检查它@segmentoponto4.com.pt/wp (Projectos)
猜你喜欢
  • 2022-01-21
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2014-02-16
  • 1970-01-01
  • 2012-07-04
  • 2014-04-07
相关资源
最近更新 更多