脚本宝典收集整理的这篇文章主要介绍了php – 在Silverstripe中制作灰度图像,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
$final = $image->getFormattedImage('greyscale',36,36);
但那没用.它确实返回带有新URL的图像对象,但图像不存在.
Object::add_extension('Image','Greyscaled');
更新:从SilverStripe 3.1开始,您应该使用配置系统而不是_config.PHP.将以下内容放在你的mysite / _config / config.yML中(不要忘记?flush = 1以在添加后重新加载配置缓存):
Image: extensions: - 'Greyscaled'
Greyscaled.PHP
<?PHP class Greyscaled extends DataExtension { //This allows the template to pick up "Greyscaleimage" PRoperty,it requests a copy of the image From the cache or if it doesn't exist,generates a new one public function GreyscaleImage($RGB = '76 147 29') { return $this->owner->getFormattedImage('GreyscaleImage',$RGB); } //This is called internally by "generateFormattedImage" when the item is not already cached public function generateGreyscaleImage(GD $gd,$RGB) { $VARs = explode(' ',$RGB); return $gd->greyscale($Vars[0],$Vars[1],$Vars[2]); } }
UPDATE2:3.1的更新版本?您可以传递2个以上的参数,GD已重命名为Image_Backend.这样,图像名称中的RGB值之间就没有空格.请注意$gd-> greyscale需要很多果汁 – 所以你可能会先缩小尺寸,然后再使用GreyscaleImage.
更新3:由于这个答案最近获得了一些投票,我认为人们仍在使用它,但我认为在2017年CSS过滤器在许多情况下是更好的选择.有前缀你将有近90%的覆盖率.
css-filters on caniuse.com
<?PHP class Greyscaled extends DataExtension { public function GreyscaleImage($R = '76',$G = '147',$B = '29') { return $this->owner->getFormattedImage('GreyscaleImage',$R,$G,$B); } public function generateGreyscaleImage(Image_Backend $gd,$B) { return $gd->greyscale($R,$B); } }
并在模板中:
<img src="$Images.GreyscaleImage.CroppedImage(1000,400).URL" alt="$Images.Title" />
以上是脚本宝典为你收集整理的php – 在Silverstripe中制作灰度图像全部内容,希望文章能够帮你解决php – 在Silverstripe中制作灰度图像所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。