Elipsa - Izrez iz slike

Pozdravljeni!

Delam en app, kjer na client-sidu uporabnik nastavi kakšno elipso želi cropat iz slike. Prišel sem tako daleč, da imam sliko v canvas in elipso, ter kontrole kako naj ta elipsa izgleda. Problem sedaj pa je, da ne znam cropat elipse iz slike - samo kvadrat. Torej rabim elipso z prosojnostjo.
Primer kar imam do sedaj:
http://bit.ly/SiWxH0

Pozna kdo rešitev?

Lp

29 odgovorov

Edit: Spregledal, da piše v HTML.

1

Se opravičujem za double post, ampak prejšnjega ne morem več urejati.

Mogoče to https://github.com/tapmodo/Jcrop ?

1

@Gnome: Hvala, to vse poznam, ampak omogoča samo CROP kvadrata in ne drugih shapeov.

1

Šlo bi z imagemagick. S funkcijo draw se da narisat elipso, nato pa z črno-belimi maskami cropaš.
maske: http://www.imagemagick.org/Usage/masking/#compose
elipse: http://www.imagemagick.org/Usage/draw/

2

@Blackmamba; Torej, na clientsideu narišem elipso, ter na server-side pošljem podatke o poziciji in velikosti v imagemagick ? ;)

1

Ja, tako nekako bi se jaz lotil, ampak upam da se mi nikoli nebo treba :P

2

zaay123:
@Gnome: Hvala, to vse poznam, ampak omogoča samo CROP kvadrata in ne drugih shapeov.

No pol pa bi tak morala rešitev katero sem omenil že v #12 postu, ampak kasneje zbrisal, ker sem mislil, da iščeš client-side rešitev, ti pomagati :) Če dobro razumem želiš točno to, kar je opisano na tem linku :) http://komunitasweb.com/2009/02/php-masking-image-with-gd/

3

Ta rešitev z GD je tudi v redu, sploh če na serverju nimaš imagemagick.
Z Imagemagick lahko še zabluraš robove če hočeš malo bolj fancy :)
http://www.imagemagick.org/Usage/blur/#feathering

edit: tudi z GD-jem lahko bluraš - imagefilter($image, IMGFILTERGAUSSIAN_BLUR);

over and out.

2

Super, fantje stokrat vam hvala! Mi zdaj uspe cropati zadevo... Zdaj edino v GD še iščem rešitev, kako naj naredim feather na robovih.. Vidim da Imagemagick to omogoča. Je boljše da prestavim zadevo na imagemagick ?

1

Jaz mislim da je veliko lažje naredit feather na robovih z Imagemagick.
Če je "boljše" je pa relativno vprašanje :)