【问题标题】:How to maintain resolution or increase resolution of image in laravel 6 in php如何在php中的laravel 6中保持分辨率或增加图像的分辨率
【发布时间】:2019-11-22 23:28:41
【问题描述】:

我正在尝试制作身份证的图像,但是当我改变它的尺寸时,它的分辨率会下降,我想保持尺寸为 88 毫米 x 58 毫米(1043 x 677 像素), 当我使用图像干预调整它的大小时,它会缩小到 88 毫米 x 58 毫米(219 x 332 像素),非常低, 如果增加像素,88 x 58 毫米的高度宽度就会分布,因此可能会出现错误,

表示我想改变高度和宽度,但同时保持毫米长度不变并且只增加高度

我试过了,

$card_width = $request->width * 3.779; //assume it is comming 57(mm)
$card_height = $request->height * 3.779; //assume it is comming 88(mm)
$img = Image::make($request->design_img)->resize($card_width, $card_height)->encode('png');
$temp_data_f = 'data:image/png;base64,' . base64_encode($temp_data_f);

上面的代码给了我 48kb 的文件,图像分辨率非常低,影响了我的打印质量, 实际上上传的文件大小为 88 x 58 毫米(1043 x 677 像素), 代码后尺寸相同,但尺寸为 88 x 58 毫米(219 x 332 像素),

我想让 mm 保持不变,并且只增加 px, 我也不想压缩图像,

【问题讨论】:

    标签: php laravel-6


    【解决方案1】:

    嘿,我自己得到了答案,

    $card_width = $request->card_width * 12;
              $card_height = $request->card_height * 12;
    
              $temp_data_f = 'data:image/png;base64,' . base64_encode(file_get_contents($request->card_template_f));
              $temp_data_f = Image::make($temp_data_f)->resize($card_width, $card_height)->encode('png');
              $img_f = new \Imagick();
              $img_f->readImageBlob($temp_data_f);
              $img_f->setImageResolution(118.111,118.111);
              $img_f->setImageFormat("png");
              $blob_f = $img_f->getImageBlob();
              $temp_data_f = 'data:image/png;base64,' . base64_encode($blob_f);
    

    这将获得任何分辨率的图像,但会输出 base64 300 分辨率的图像 如果你想改变分辨率就改变 $img_f->setImageResolution(118.111,118.111);change 118.111 到所需的值 desired_resolution/2.54 = value 只需将值替换为 118.111

    【讨论】:

      猜你喜欢
      • 2011-04-07
      • 2017-08-23
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-13
      • 1970-01-01
      • 2022-08-22
      相关资源
      最近更新 更多