jonasva / laravel-vision
A Laravel 5 package to interact with Google Cloud Vision.
Requires
- php: ^7.2
- google/cloud-storage: ^1.3
- google/cloud-vision: ^0.22.0
- illuminate/support: ^5.4
This package is auto-updated.
Last update: 2024-10-14 19:46:07 UTC
README
Easy way to analyze images with Laravel and Google Cloud Vision. Check their demo to see what it can do.
Features
Optical Character Recognition
Convert an image or PDF document to text
$path = $request->file('file')->getRealPath(); $text = Vision::getFullText($path);
Annotate image
Get annotations of your image for one or more Vision features.
Make sure you extract the same type of annotations from the response as the feature you requested. (eg: Type::FACE_DETECTION
-> $response->getFaceAnnotations()
)
use Google\Cloud\Vision\V1\Feature\Type; $path = $request->file('file')->getRealPath(); $features = [Type::FACE_DETECTION]; $response = Vision::annotateImage($path, $features); $faces = $response->getFaceAnnotations();
Installation
Laravel
This package can be installed through Composer.
composer require jonasva/laravel-vision
Publish config
php artisan vendor:publish --provider="Jonasva\Vision\VisionServiceProvider"
Google Cloud Console
In order to use the Google Cloud Vision API, you'll need to setup a couple of things in Google Cloud Console.
-
Go to Cloud Console and select a project (or create a new one).
-
Add your project ID to your env file under
GOOGLE_CLOUD_PROJECT
-
Go to the API library and find "Cloud Vision API". Click "Enable"
-
Create a service account + credentials file for Cloud Vision API. Place the credentials file in your project, and add the path (relative to your project root) to it in your env file under
GOOGLE_APPLICATION_CREDENTIALS
. (seeconfig/vision.php
file for more details.) -
Setup a Google Cloud Storage bucket and make sure your newly created Cloud Vision service account user has read/write permissions to it. This bucket will be used to process PDF and TIFF type files.
-
Add the bucket name in your env under
GOOGLE_CLOUD_BUCKET
-
I suggest setting up a lifecycle rule for your bucket to automatically remove files older than 1 day.
Pricing
Make sure you take a look at Cloud Vision API's pricing, as it's not an entirely free service.