![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
witam
mecze sie nad kawalkiem kodu i nie wiem jak to rozwiazac bo chyba to jest skomplikowane;) jest galeria zdjec, uzytkownicy wrzucaja sobie zdjecia, a poszukiwany kod ma za zadanie utworzyc 3 obrazki o zadanych rozmiarach. zalozenie jest takie: najpierw zmiana rozmiaru obrazka a pozniej obciecie to co pozostalo poza zadany rozmiar. jeden obrazek bedzie mial tylko zmieniany rozmiar. czyli funkcja ktora to bedzie realizowac przyjmuje 5 parametrow:
kombinowalem juz na rozne sposoby ale jak do tej pory zawsze znajdywal sie jakis obrazek i rozmiary koncowe ktore w polaczeniu razem nie dawaly oczekiwanego rezultatu. czy ktos sie juz nad tym glowil? nie chodzi mi o konkretny kod z funkcjami imagecopyresample i tym podobne, bo dany algorytm bede realizowal na metodach biblioteki Image dolaczonej do Kohany. pozdrawiam EDIT: bezsensu tego posta napisalem. chodzi o to zeby obrazek na wyjsciu mial identyczne wymiary jak podane w formularzu, ale nie tak zeby wycinal ze srodka tak jak to przewaznie cropy robia tylko najpierw zmniejszyl obrazek do nakrotszej krawedzi a nastepnie ucial z tej dluzszej krawedzi resztki. gdy obrazek jest mniejszy musi powiekszyc do podanych rozmairow no i uciac resztki. Ten post edytował AxZx 28.07.2008, 22:17:15 -------------------- aplikacje internetowe | Symfony
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Algorytm step-by-step:
Kod oznaczenia: SW - szerokosc zrodla (obrazka do pomniejszenia) SH - wysokosc zrodla SI - obrazek zrodlowy DW - szerokosc docelowa DH - wysokosc docelowa DI - obrazek docelowy) A = DW/DH B = SW/SH if(B > A){ C = DH/SH resize: SI(SW, SH) -> DI(SW*C, SH*C = DH); // pomniejszenie tak, ze wysokosc bedzie taka sama crop: DI(SW*C, DH) -> DI(DW, DH) } else{ C = DW/SW resize: SI(SW, SH) -> DI(SW*C = DW, SH*C); // pomniejszenie tak, ze szerokosc bedzie taka sama crop: DI(DW, SH*C) -> DI(DW, DH) } jakos tak o ile dobrze zrozumialem Twoj problem Ten post edytował ddiceman 29.07.2008, 12:11:07 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
dzieki, a co oznacza linijka
Kod SI(SW, SH) -> DI(SW*C, SH*C = DH) ? gdybys mogl wyjasnic to bede juz wiedzial jak hpp do tego napisac:) -------------------- aplikacje internetowe | Symfony
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
resize staerego obrazka (ktory ma wymiary SWxSH do obrazka o wymiarach AxB, gdzie A = SW*C a B = SH*C, przy czym SH*C jest rowne DH, czyli
Ten post edytował ddiceman 29.07.2008, 13:12:28 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
dzieki bardzo. wyglada sensownie:)
musze sie nad tym zastanowic, bo metody resize i crop w kohanie przyjmuja takie parametry jak szerokosc i wysokosc nowego obrazka oraz parametr ktory okresla wg ktorego boku ma byc zmieniany rozmiar - tzw. master:) no i wlasnie problem jest w ustaleniu tego master. czyli wedlug ktorego boku ma robic najpierw resize. -------------------- aplikacje internetowe | Symfony
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
dla spelnionego if wg wysokosci a dla else wg szerokosci
wymiary docelowe to za kazdym razem SW * C oraz SH * C |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 8.07.2025 - 03:26 |