2011-08-05 10 views
7

muszę przypiąć variablesized obrazów w puzzle w kształcie pices tak (nie kwadraty): http://www.fernando.com.ar/jquery-puzzle/strzyżenie Scalable maska ​​

Rozważałam możliwość spotkania w ten sposób z biblioteki php jak Kair lub GD, ale mają niewiele nie ma doświadczenia z tymi librays i nie widzisz bezimiennej duszy do tworzenia maski przycinającej dynamicznie skalowalnej dla obrazów o różnych rozmiarach.

Szukam wskazówek/wskazówek, na których serwerach programowania język, aby wykorzystać do wykonania tego zadania, a najlepiej podejście do tego problemu.

Odpowiedz

0

Możesz utworzyć obraz używając GD z rozmiarem puzzli. a następnie skopiuj pełny obraz na tym obrazie prawym przycięciem, aby uzyskać odpowiednią część obrazu.

Następnie można po prostu dynamicznie kolorować każdą część fragmentu, który ma zostać usunięty za pomocą wyraźnego koloru (np. # 0f0), a następnie użyć imagecolorallocatealpha, aby uczynić ten kolor przezroczystym. Zrób to dla każdego kawałka i masz fragmenty obrazu po stronie serwera.

Jednakże, jeśli gdzieś bym utworzył maskę przycinającą każdego pokoju układanki z góry w odrębnym kolorze. W ten sposób powstałyby dwa obrazy na połączenie (jeden z wystającym łącznikiem "koło" i jeden, w którym pasuje ten łącznik koła). W ten sposób możesz po prostu skopiować te maski na obraz, aby szybko utworzyć ładne krawędzie.

0

GD jest dość skomplikowany, słyszałem bardzo dobre rzeczy o Image Magick, dla której istnieje wersja PHP i dużo dokumentacji na php.net. Jednak nie wszystkie serwery internetowe będą miały tę instalację domyślnie.

http://www.php.net/manual/en/book.imagick.php

0

Jeśli zdecydujesz się zrobić to za pomocą PHP z GD następnie kod tutaj może pomóc:

http://php.amnuts.com/index.php?do=view&id=15&file=class.imagemask.php

Zasadniczo to, co trzeba zrobić z GD jest zacząć z maską na określonego rozmiaru, a następnie użyj funkcji imagecopyresampled, aby skopiować zasób obrazu maski do większego lub mniejszego rozmiaru. Aby zobaczyć, co mam na myśli, sprawdź klasę metody _getMaskImage pokazaną pod adresem URL powyżej. A Przykład pracy wyjścia można zobaczyć pod adresem:

http://php.amnuts.com/demos/image-mask/

Problem ze robi to poprzez GD, o ile mogę powiedzieć, jest to, że trzeba to zrobić piksel na raz, jeśli chcesz aby uzyskać różne poziomy krycia, więc przetworzenie dużego obrazu może potrwać kilka sekund. W przypadku ImageMagick może tak nie być.