标签: intervention

干预图像 - 以base64编码格式保存到变量

我正在使用Laravel图像处理包干预图像.

我想将裁剪后的图像保存到变量然后再保存到DB但是在文档中找不到如何将结果导出为字符串.这是我的代码:

$img = Image::make($uploadedImage);
$img->crop(160, 210);
$imageEncoded = // ?
Run Code Online (Sandbox Code Playgroud)

save(),但它只保存到文件.

如何将修改后的干预图像导出到字符串变量?(data:image/jpeg;base64,…)

base64 laravel intervention

7
推荐指数
1
解决办法
9191
查看次数

laravel 5 - > getRealPath()doenst显示正确的值

在我的本地开发中,我使用下面显示的代码,它完美无缺,

但当我将网站上传到我的共享主机时,一切正常,除了我的文件上传.我已经确定问题涉及到 ->getRealPath(),当dd();我得到这条道路时: /data/sites/web/christophvhbe/tmp

哪个在我的托管上不存在.但我发现临时图像存储在我的托管位置,tmp/位于此处:http://gyazo.com/e0199718324119109a4ff66321414e12.

如何将->getRealPath()值更改为正确的值?

$fileName = time() . '-' . $request->file('foto')->getClientOriginalName();
$product->foto = $fileName;
$product->save();

$imagePath = '/images/producten/'. $fileName;

$image = Image::make($request->file('foto')->getRealPath())->fit(300)->save($imagePath);
Run Code Online (Sandbox Code Playgroud)

我正在使用该Image/intervention程序包上传和存储图像.

php laravel laravel-5 intervention

6
推荐指数
1
解决办法
1万
查看次数

Laravel图像干预压缩

我有一个脚本,通过干预保存和缓存图像,它的工作100%

但是我想弄清楚如何为jpg和png文件添加75%压缩,但我不知道我会在这种情况下应用它.

我不认为PNG文件可以被压缩而不是软件,所以我不确定它是否相同?

这里有一个压缩的例子:http://image.intervention.io/api/save

/* ////////////////////// IMAGES //////////////////////// */
Route::get( '/media/{size}/{crop}/{name}', function ( $size = null, $crop = null, $name = null ) {
    if ( ! is_null( $size ) and ! is_null( $name ) and ! is_null( $crop ) ) {
        $size = explode( 'x', $size );

        $hours = 48;
        $cache_length = $hours * 60;

        switch ( $crop ) {

            /*///////////////////////// no crop and change ratio */
            case "0":
                $cache_image = Image::cache( function ( $image ) …
Run Code Online (Sandbox Code Playgroud)

compression laravel intervention

6
推荐指数
2
解决办法
1万
查看次数

Container.php中的ReflectionException类图像不存在以进行干预

我尝试使用laravel保存来自POST请求的图像.但它给了我以下错误.

Container.php第741行中的ReflectionException:类图像不存在

我做了以下事情:在php.ini文件中启用fileinfo扩展,composer dumpautoload 但没有任何工作我在这里遵循指南行 我正在使用laravel 5.1

我的代码如下

public function saveImage(){

    Image::make(Input::file('files')->getRealPath())
        ->resize(870, null, true, false)
        ->save('foo.jpg');

}
Run Code Online (Sandbox Code Playgroud)

php image laravel intervention laravel-5.1

6
推荐指数
1
解决办法
2463
查看次数

使用 Laravel 5 干预图像为图像添加空白以制作方形图像

假设我有一个最喜欢的正方形尺寸,在这种情况下它有2236 px宽度和高度。

我需要使用php intervention package.

用户的图像尺寸是多少并不重要,但关键是图像必须以新尺寸保存,但用户图像必须位于正方形的中心和中间,如果图片小于我最喜欢的尺寸,则必须被拉伸,如果图像更大,它必须压缩到我的尺寸

请看一下这张照片: 我的计划

这些是一些真实的例子: 示例 1 例子2

有没有人在这种情况下有任何经验,你知道我该怎么做吗?

提前致谢

php image laravel-5 intervention

6
推荐指数
2
解决办法
3665
查看次数

Laravel Intervention无法从给定的WEBP类型文件的二进制数据初始化

我正在尝试使用二进制映像上传到存储,Laravel Intervention Image但它给出了错误,因为无法从给定的二进制数据初始化.

我正在使用此代码

$image = base64_decode($postData['image']);

$destinationPath = storage_path($destinationFolder);

if (!File::exists($destinationPath)) {
    File::makeDirectory($destinationPath, 0777, true, true);
}

$filename = ($fileName != '') ? $fileName : $folderName . '_' . time() . '.jpg';

$imageResult = Image::make($image)->resize($imageWidth, $imageHeight, function ($constraint) {
    $constraint->aspectRatio();
})->save($destinationPath . $filename, imageQuality($image));

if ($imageResult){
    return '/image/' . $filename;
}

return false;
Run Code Online (Sandbox Code Playgroud)

二进制图像数据是

data:image/webp;base64,UklGRlIFAABXRUJQVlA4IEYFAAAQHACdASpPAHkAPlEQlEojkdHMYDgFBLIAZqA25eJVGRUWLtSnk7iTzHecd0SXUx8+t+zLWt8WJpEWrTTvLe9y9CX9VSAw3YOVEdn4oGm0ZIrnQUIJ7VsI/r+aW0VOJeFoJylth8MmFQHlbPEklNUVbgyVJnINmgXnDbtgj9paOvkDYnVAdv2ErJONHxXyp2eyn7mB6vcVu9AfWuUtDlYxhQG1CEongtTYR0U4jQIbXYTTzN/3G5cAEd0FmVN272q9XHtEAeWzrMHHsZ7YPtpmppalPe8BvhnrwSA+ctaG9iQ6b7pEVBVPAAD+/uy97OjEKfy53WiZp+vshoaLbmP0cVKb4k6hnKsxJdcP+CgaRYQkOjb4FGLJO55Q/c+afu5UzMOW3Tx4pq6YezZD8PSoPz4zk6GAAEL9XDf3c3RwQKG1r2lWKnBonjqCV8/oU/xr4Gv59yLHfFPfneUb6BrG9yoc40NAk+xGkgtKGsIDDanX+uuhaKWGntbgweNVylzqaIqZrCMYGgfkbTo+yPQ0JgHev/+hCnqRe4cEi4VfveeAi+7wBLg2w4tZOj0d7O7gJM6Zj9uaLB6l/3xyvdHwzThmi8na5GMB/v+Y7YAIYCGOV62mQ6XSrBMQHKUoPvIVwUeHVkJFWnUCt6S7yOMa9RkZxe8//Bphx4NhJ/dXc3x7HQESKmLUu8nofAJKiyg7v46s90BuZWpbVYysGbdPR9Shc9nqgYoEazEu+ik00Mr+VLM+/lS8aCumf4on0FkZ/Dn4SGJSU8pc02nt7ncW0e0XwVKx9DE8RfVww8GDv33+1ib7qkv1gsaGBdn60MpW2PzyI1ZDReCh25f4z4RsG91nEpjDr4MmVOaW40nXwNnAfuYawSt+b05IQx9GGw0seGFDJ4hbb+tTatszMiOSjhQ9HsO19t/hVFojVco/cKoG9XUSorPouBOqFqDrciO3+BVFFo5l5JW3Ka0ZtamSCrzt1AUzOndTy82imvJ+NZ1D+iXF92d3XITYsveniLVxEjp+pQIp8pXJ3p3DuFQPxzuQ44E3xWcPimJ7wuJnIrIm8jyFaM4AHJ1OBc/BG+0iP5zUHWl36LGK5VpoDkw34T+sQs9s0gOpG+tNM0uaKmwmONjo2L0tFqaiC4V4aHLO3JqptxoxSjn3BQVG5x/ga/7bz/hqeycRIoGrTuIqKAdCVVrYLEgr39NID+sKzK6BYzr8j9r3JMPZ3+2T09lEwe0u+S7B4wI3rlSz5L3DZspwtfkWcGtZpUCRqgOiWnFnpdIlor1+zvQK2ksDUpf0UbyRW/c59RQIfouYA6cKJUxsQzPPL5yvuIprzjZLY2HRkKFbemgUbPH1nxw28qtf2EixENC3uGus24PjYW8Jz/G5kZ2ioG2UXp00Aru2Z1Hk4AB0G2RPAzhdp1WQEnbqXb5a35eSSv5SGUYQbRDbaQNnyeODfb80a056/Cz7wmTtn5xvWT1UhTg7J/9J/4cCoBkweCOc1exDC4bBpdmwNyB82TfMOL+HcsO/UR1EDkEBdEl2HLQOA2mSntOQ3dTgMQX/71+MtpetptbThjL/fnRMMfVnpovAe2jd4SXx+s8fMNJXcEkO9ZKxIWFH0EwLvzIp8SPc5z+AzLEwfn4aBvVL835u4BsodI+usLpWnlC7Xdz6JMVxKivRpoWgrcIsAF91564sRuvXd3rwozLc0Fb/at7P3B3B5Jc7wPXQ/CH5Y6Thjn0W8zAWnd3VwwB3ZS/Uv/ubq8H7W9He6fvg6Ib/101yfwV8xpmLHwZGmXWgAAAAAAA=
Run Code Online (Sandbox Code Playgroud)

php file-upload laravel laravel-5 intervention

6
推荐指数
1
解决办法
796
查看次数

如何使用 Laravel 伪造图像上传以使用干预图像包进行测试

我有一个测试断言可以上传图像。这是代码...

// Test

$file = UploadedFile::fake()->image('image_one.jpg');
Storage::fake('public');

$response = $this->post('/api/images', [
'images' => $file
]);
Run Code Online (Sandbox Code Playgroud)

然后在控制器中我正在做一些更简单的事情..

$file->store('images', 'public');
Run Code Online (Sandbox Code Playgroud)

并断言几件事。它就像魅力一样。

但现在我需要使用干预图像包调整图像大小。为此,我有以下代码:

 Image::make($file)
        ->resize(1200, null)
        ->save(storage_path('app/public/images/' . $file->hashName()));
Run Code Online (Sandbox Code Playgroud)

如果目录不存在,我首先检查这个并创建一个 -

if (!Storage::exists('app/public/images/')) {
        Storage::makeDirectory('public/images/', 666, true, true);
         }
Run Code Online (Sandbox Code Playgroud)

现在测试应该是green,我会,但问题是每次我运行测试时,它都会将文件上传到存储目录中。我不想要的。我只需要伪造上传而不是真实上传。

任何解决方案?

提前致谢 :)

tdd laravel laravel-5 intervention

6
推荐指数
1
解决办法
1670
查看次数

将 PNG 保存为 JPG 时向背景添加黑噪声的图像干预

我目前正在使用干预/图像来调整图像大小并将它们保存为 JPG。

我在 Windows 本地运行相同的代码,在 Ubuntu 20.20 远程运行。

在 Windows 中,它会将 PNG 转换为 JPG,将透明背景转换为白色。但是,在 Ubuntu 中,在白色背景之上添加了黑色噪音。

我运行的代码是:

$resize = Image::make($img)->encode('jpg');
$resize->height() > $resize->width() ? $width = null : $height = null;
$resize->resize($width, $height, function ($constraint) {
    $constraint->aspectRatio();
});
Run Code Online (Sandbox Code Playgroud)

我应该在之前添加其他东西encode以确保透明度变成白色吗?

在此处输入图片说明

laravel intervention

6
推荐指数
1
解决办法
528
查看次数

无法从干预/图像中的给定 url 进行初始化": "^2.3

我想将 google plus 中的图像保存为下面的 url,它在本地计算机上也能正常工作,但在上传到 ubuntu14 时出现以下错误。

$image = Image::make('https://lh6.googleusercontent.com/-Gcp_Wjj7yA0/AAAAAAAAAAI/AAAAAAAAAB8/hl1xcz4FnEI/photo.jpg')
            ->resize(100, 100)->save(public_path('image/userface/fuck.jpg'));
Run Code Online (Sandbox Code Playgroud)

错误

Unable to init from given url
Run Code Online (Sandbox Code Playgroud)

php laravel-5 intervention

5
推荐指数
1
解决办法
6730
查看次数

Laravel 图像干预调整大小并放入存储

当用户上传图片时,我想以多种格式存储它。我处理图像的代码:

$img = Image::make($file)->encode('png');
if($img->width()>3000){
    $img->resize(3000, null, function ($constraint) {
        $constraint->aspectRatio();
    });
}
if($img->height()>3000){
    $img->resize(null, 3000, function ($constraint) {
        $constraint->aspectRatio();
    });
}
$uid = Str::uuid();
$fileName = Str::slug($item->name . $uid).'.png';

$high =  clone $img;
Storage::put(  $this->getUploadPath($bathroom->id, $fileName, "high"), $high);


$med =  clone  $img;
$med->fit(1000,1000);

Storage::put(  $this->getUploadPath($bathroom->id, $fileName, "med"), $med);

$thumb = clone   $img;
$thumb->fit(700,700);
Storage::put(  $this->getUploadPath($bathroom->id, $fileName, "thumb"), $thumb);
Run Code Online (Sandbox Code Playgroud)

如您所见,我尝试了一些变体。

我也试过:

    $thumb = clone   $img;
    $thumb->resize(400, 400, function ($constraint) {
        $constraint->aspectRatio();
    });
    Storage::put(  $this->getUploadPath($fileName, "thumb"), $thumb);
Run Code Online (Sandbox Code Playgroud)

getUploadPath 函数:

public function …
Run Code Online (Sandbox Code Playgroud)

laravel intervention

5
推荐指数
1
解决办法
703
查看次数