标签: intervention

将干预图像保存在Laravel 5的所有者文件夹中

我可以更改代码以将上载的图像保存在公共目录中,但是当我想将其上载的图像作为公司名称保存在文件夹中时,不能更改。例如有效的例子:

/public/company_img/<filename>.jpg
Run Code Online (Sandbox Code Playgroud)

如果用户的公司名称为Foo,则我在保存时需要此保存保存上载的图像:

/public/company_img/foo/<filename>.jpg
Run Code Online (Sandbox Code Playgroud)

这是在我的控制器中:

$image = Input::file('company_logo');
$filename = $image->getClientOriginalName();
$path = public_path('company_img/' . Auth::user()->company_name . '/' . $filename);

// I am saying to create the dir if it's not there.
File::exists($path) or File::makeDirectory($path); // this seems to be the issue

// saving the file
Image::make($image->getRealPath())->resize('280', '200')->save($path);
Run Code Online (Sandbox Code Playgroud)

只需查看一下,您就可以轻松看到它在做什么。我的日志什么都没有显示,并且点击更新按钮后浏览器变为空白。有任何想法吗

laravel laravel-5 intervention

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

如何在php中使用闭包函数中的变量?

我正在使用php的干预来进行图像处理.是否可以通过这样的变量将字体大小和颜色应用于文本?我已计算出$ fontsize和$ color,但它表示未定义的变量

$img->text($string, $item['x'], $top, function($font) {
                        $font->file('assets/fonts/Roboto-Medium.ttf');
                        $font->size($fontsize);
                        $font->color($color);
                        $font->align('left');
                        $font->valign('top');
                    });
Run Code Online (Sandbox Code Playgroud)

php gd laravel laravel-5 intervention

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

使用干预时未找到图像类

我已经安装了Laravel 5.2和Intervention,现在它在项目的composer.json文件中.

"require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",
        "intervention/image": "^2.3"
    },
Run Code Online (Sandbox Code Playgroud)

阅读完教程后,它会提到一个Image.php文件,一旦安装了Intervention,它应该位于项目内的config文件夹中.我相信我已经正确安装了干预,但是当我尝试使用干预功能时,它不起作用.

当我尝试使用这行代码时,我得到了这个错误

$resizedImg = Image::make($path)->resize(200,200);

C:\xampp\htdocs\socialNet\vendor\laravel\framework\src\Illuminate\Container\Container.php line 738:
Run Code Online (Sandbox Code Playgroud)

类图像不存在

在我使用此函数的文件中,我包含此Use语句

use Intervention\Image\Facades\Image as Image;
Run Code Online (Sandbox Code Playgroud)

php laravel intervention laravel-5.2

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

干预:两次调整图像大小?

我想使用Intervention两次调整图像大小.

我现在有这个:

$img = Image::make($image_url);

$img_path = public_path() . '/images/';

$img->fit(500, 250);
$img->save($img_path . '/img_250.jpg');

$img = Image::make($image_url);

$img->fit(100, 100);
$img->save($img_path . '/img_100.jpg');
Run Code Online (Sandbox Code Playgroud)

如您所见,我首先要将原始图像的大小调整为500x250,然后我想再次将原始图像(不是500x250图像)调整为100x100.

没有Image::make()两次打电话有没有办法做到这一点?

php laravel laravel-5 intervention laravel-5.2

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

Laravel 5介入图片上传多个尺寸

我正在使用laravel 5和干预,并希望在通过表单上传图像时存储多种尺寸的图像.任何人都可以指导我

laravel-5 intervention

0
推荐指数
1
解决办法
6597
查看次数

如何使用Windows安装干预图像

在Intervention Image的网站上,它说为了安装最新版本,我必须运行以下命令:

php composer.phar require intervention/image
Run Code Online (Sandbox Code Playgroud)

我使用的是Windows 8.1,我猜这不会起作用.我已经尝试了,它说:无法打开输入文件:composer.phar

我错过了一些非常容易的事吗?

php laravel intervention

0
推荐指数
2
解决办法
6273
查看次数

无法在Laravel 5.4中上传图像

我正在使用Laravel 5.4设置一个表单,用户可以在其中输入食物名称及其图像。尝试上传PNG或JPG图片时,出现以下内容Validation Error

该图像必须是图像。

如果删除图像验证,则会得到FatalErrorException

在null上调用成员函数getClientOriginalExtension()

这是Intervention /图片库提供的帮助程序功能。这可能意味着该图像根本没有上传。

FORM

<form action="/hq/foods" method="POST">
    {{ csrf_field()  }}

    <input type="text" name="name">
    <input type="file" name="image">
    <button type="submit" class="btn btn-success ">
        ADD FOOD ITEM
    </button>
</form>
Run Code Online (Sandbox Code Playgroud)

CONTROLLER

public function store(Request $request) {

    $this->validate($request, [
        'name'              => 'required|min:2|max:255',
        'image'             => 'required|image'
    ]);

    $food_category = FoodCategory::find($request->food_category_id);
    $food = new Food;
    $food->name = $request->name;

    $image = $request->file('image');
    $filename = time() . '.' . $image->getClientOriginalExtension();
    $location = public_path('img/foods/' . $filename);
    Image::make($image)->resize(800, 400)->save($location);
    $food->image = $filename; …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 intervention laravel-5.4

0
推荐指数
1
解决办法
3266
查看次数

来自Laravel的干预\图片不管理webp

在我的开发服务器上,一切都很好,我通过表单上传的图像被转换

Image::make($img)->encode('webp');
Run Code Online (Sandbox Code Playgroud)

当我去检查它时,它是完美的.

在我的生产服务器上,事情有点不同,例如,如果我上传一个方形图像(完全红色),在编码后我最终得到一个褐色/金色图像和其他图像我最终得到一个空白区域.

由于正在创建图像,我认为编码时存在问题,可能是我错过了一些配置.

dev服务器上的GD库版本为2.4.1,生产版本为2.1.1

所有东西都在Ubuntu 17.10上运行,开发时间为16.04.

Laravel版本5.5

编辑

开发和生产方面的PHP 7.0版

编辑2

这是出现的那种形象

这是出现的那种形象

php gd laravel intervention laravel-5.5

0
推荐指数
1
解决办法
1776
查看次数

使用图像干预保存动画 gif

我正在尝试上传动画 gif 作为用户头像。这些图像通过javascript转换为base64,然后使用图像干预上传。

$img = Image::make(file_get_contents($file));
$mime = $img->mime();
if ($mime == 'image/jpeg')
    $ext= '.jpg';
elseif ($mime == 'image/png')
    $ext= '.png';
elseif ($mime == 'image/gif')
    $ext= '.gif';
elseif($mime == 'image/x-icon')
    $ext = '.ico';
elseif($mime == 'image/bmp')
    $ext = '.bmp';
else {
    $ext = '.jpg';
}
$name = time().$ext;
$path = public_path("images/$controller");
File::isDirectory($path) or File::makeDirectory($path);
if(property_exists($field, 'size') && !$ext=='.gif') {
    $field->size = explode('*',$field->size);
    if($img->resize($field->size[0], $field->size[1])->save("$path/$name")) {
        $data[$key] = $name;
    } else {
        $data[$key] = null;
    }
} else {
    if($img->save("$path/$name")) { …
Run Code Online (Sandbox Code Playgroud)

base64 laravel intervention

0
推荐指数
1
解决办法
2466
查看次数

Laravel 和干预/图像:将照片上传到 AWS S3 存储桶会生成 0 字节文件

我在Laravel 中使用http://image.intervention.io/来调整图像大小,然后再将它们存储在 AWS S3 存储桶中。这是适用的代码:

$extension = $image->extension();
$realPath = $image->getRealPath();
$resizedImage = Image::make($realPath) // ->resize(255, 255); // resize or not, make() seems to always return an empty Image
$file_path = "posts/$post->id/images/image-$post->id-num-$pictureCount.$extension/"; 
$path = Storage::disk('s3')->put($file_path, $resizedImage->__toString(), ['visibility' => 'public']);
Run Code Online (Sandbox Code Playgroud)

调试时($path设置了线路上的断点),我可以看到它$realPath包含一个类似的值/private/var/folders/23/jl2dytp168g9g9s5j51w2m780000gn/T/php9047Fh- 去那里我可以看到我正在尝试的图像make()/ resize()

$resizedImage对象具有以下字段:

[encoded] => 
[mime] => image/jpeg
[dirname] => /private/var/folders/23/jl2dytp168g9g9s5j51w2m780000gn/T
[basename] => phpTNRdXe
[extension] => 
[filename] => phpTNRdXe
Run Code Online (Sandbox Code Playgroud)

我猜编码的属性应该包含类似 base 64 图像数据的内容?

检查 AWS S3 存储桶中的图像时,它总是作为 …

php image laravel-5 intervention php-7

0
推荐指数
1
解决办法
771
查看次数