PHP GD给图像黑色背景

时间:2019-06-28 17:50:02

标签: php gd

所以我试图使用php的gd库裁剪图像的侧面,但是我遇到一个问题,即每当保存图像时背景都会变黑。

我已经尝试过:

class PasswordResetSerializer(serializers.Serializer):
    email = serializers.EmailField()
    password_reset_form_class = PasswordResetForm
    def validate_email(self, value):
        self.reset_form = self.password_reset_form_class(data=self.initial_data)
        if not self.reset_form.is_valid():
            raise serializers.ValidationError(_('Error'))

        ###### FILTER YOUR USER MODEL ######
        if not User.objects.filter(email=value).exists():
            raise serializers.ValidationError(_('Invalid e-mail address'))
        return value

    def save(self):
        request = self.context.get('request')
        user = User.objects.get(email=request.data.get('email'))
        token = Token.objects.get(user=user.id)
        uid = urlsafe_base64_encode(force_bytes(user.id)).decode()
        template = 'example_message.html'
        context = {'usertoken': token, 'reactdomain': 'localhost:3000', 'userid': uid}
        opts = {
        'use_https': request.is_secure(),
        'from_email': getattr(settings, 'DEFAULT_FROM_EMAIL'),

        ###### USE YOUR TEXT FILE ######
        'email_template_name': template,
        'extra_email_context': context,
        'html_email_template_name': template,
        'request': request,
        }
        self.reset_form.save(**opts)

并且它可以与原始图像配合使用,但是当我在裁剪后的图像上尝试该代码时,没有任何反应。

这是完整的代码:

$background = imagecolorallocate($cropped, 0, 0, 0);
imagecolortransparent($cropped, $background);
imagealphablending($cropped, false);
imagesavealpha($cropped, true);

每当我在imagepng函数中将image变量更改为$ testImage时,我的图像就会保存为透明背景,但不会像我希望的那样裁剪出侧面,但是如果我将变量更改为$ cropped,背景变成黑色。 IMG_CROP_SIDES是唯一可用于裁剪图像侧面的模式。

0 个答案:

没有答案