在PHP中调整图像大小会创建黑色图像

时间:2016-10-29 14:52:02

标签: php gd

我想使用GD库在PHP中调整图像大小。

我找到了this question,这对我帮助很大。它让我完全按照自己的意愿行事。我将默认值更改为import { CommonModule } from '@angular/common'; import { RouterModule } from '@angular/router'; import { NgModule } from '@angular/core'; export const routes = [{ path: '', component: parentComponent, canActivate: [AuthGuard], resolve: { someData: someDataResolver }, children: [ { path: '', resolve: { someData2: someData2Resolver }, children: [ { path: '', redirectTo: '0', pathMatch: 'full' }, { path: '0', component: someComponent1, resolve: { someData1: someData1Resolver, } }, { path: '2', component: someComponent2, } ... a bunch more children routes/components with resolvers ] ] }] 而不是答案中的false,我还添加了一种调整png大小的方法。

这个true函数对所有图像都有很好的效果,直到我想将this image缩小到400x128(横向)。

这创建了一个黑色图像。我甚至删除了我添加的部分,并使用了从问题中复制的普通函数,它仍然呈现黑色。这个特殊的图像似乎也遇到了其他图像尺寸的问题,例如400x400。如果您禁用裁剪选项,它将按预期工作。

函数中包含的数学有问题吗?我试着用纸上的数学代替我想要的数字变量,但我中途感到困惑。

PHPfiddle举个例子。尝试将第二行的值更改为其他值。它部分有效(不按比例,即使裁剪应按比例缩放)。

1 个答案:

答案 0 :(得分:1)

当我调试它时,宽度为负。 所以,如果我将第9行更改为以下

$width = abs(ceil($width-($width*abs($r-$w/$h))));

它不再是黑色了。 我没有按预期检查公式是否正确,但abs()会使你的图像不再是黑色。