8000 GitHub - Talento90/imgart: :art: IMGART it's a simple, fast and reliable HTTP service for image processing based on filters and profiles
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

🎨 IMGART it's a simple, fast and reliable HTTP service for image processing based on filters and profiles

License

Notifications You must be signed in to change notification settings

Talento90/imgart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IMGART Build Status Go Report Card

logo

IMGART it's an HTTP service for image processing based on filters and profiles.

Documentation: https://imgart.onrender.com/api/v1/docs

Features

  • Image manipulation
  • Image caching (Redis)
  • Predefined Profiles (MongoDB)
  • API Documentation (Swagger Specification)
  • Error Handling
  • Docker
  • Debugging using Delve and Docker
  • Makefile
  • Testing
  • Graceful shutdown
  • Healthcheck

Docker Support

  • Dockerfile (Development)
  • Dockerfile.CI (Production)
  • docker-compose.yml (Run application)
  • docker-compose.debug.yml (Run application with delve for debugging)

Setup Project

  • Clone repository: git clone git@github.com:Talento90/imgart.git
  • Install dependencies: make deps
  • Run using docker: docker-compose up or make docker
  • Open application: open http:localhost:4005

Usage

{host}/api/v1/images?imgSrc={0}&profile={1}&filters={2}

  • host: Server address
  • imgSrc: Image URL
  • profile: Profile we want to apply
  • filters: List of filters to process

Example

https://imgart.onrender.com/api/v1/images?imgSrc=https://goo.gl/mq7yPD&profile=example&filters=[{"id":"rotate","parameters":{"angle":-90}}]

Result

result

Effects

The engine behind image manipulation is the fabulous library: github.com/disintegration/

Available Effects

Effect JSON Result
overlay {"id":"overlay","parameters":{"position":[25,75],"url":"https://goo.gl/UBrXeo","opacity":100}} overlay
resize {"id":"resize","parameters":{"width":25,"height":50,"filter":"linear"}} resize
crop {"id":"crop","parameters":{"rectangle":[0,0,202,150]}} crop
rotate {"id":"rotate","parameters":{"angle":-90,"bgcolor":"transparent"}} rotate
blur {"id":"blur","parameters":{"sigma":0.9} blur
brightness {"id":"brightness","parameters":{"percentage":-50}} brightness
contrast {"id":"contrast","parameters":{"percentage":100}} contrast
gamma {"id":"gamma","parameters":{"gamma":0.2}} gamma

It's possible to combine multiple effects:

/api/v1/images?imgSrc=https://raw.githubusercontent.com/Talento90/imgart/master/assets/gopher.png&filters=[{"id":"overlay","parameters":{"position":[25,75],"url":"https://goo.gl/UBrXeo"}},{"id":"overlay","parameters":{"position":[22,-35],"url":"https://goo.gl/aEkkDh"}}, {"id":"crop","parameters":{"rectangle":[0,0,202,150]}}]

result

Profiles

If you don't want to specify filters in URL, you can create a profile with 648F all pre configured filters and then use it in query parameters &profile={profile-id}.

Create Profile

POST /api/v1/profiles

{
    "id": "my-profile",
    "filters": [
        { "id": "brightness", "parameters":{ "percentage":0.3}},
        { "id": "crop", "parameters":{"rectangle":[0,0,100,200]}}
    ]
}

Using profile in query parameters

GET /api/v1/images?imgSrc={image url}&profile=my-profile

About

🎨 IMGART it's a simple, fast and reliable HTTP service for image processing based on filters and profiles

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

0