![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Napisałem funkcję do skalowania obrazków. Idea polega na tym:
-->można podać wysokość i szerokość obrazka docelowego jako liczbę lub "auto" -->można podać jedną z opcji "fill" "crop" lub "auto" -->podanie wymiaru jako "auto" oznacza automatyczne wskoczenie do trybu "auto" (chyab nie da sie inaczej) -->obrazki nigdy nie są zwiększane; mogą być tylko zmniejszane -->wolne przestrzenie wypełniane są białym tłem -->podajemy $_MAX_WIDTH_ i $_MAX_HEIGHT_ oznaczające maksymalne wymiary (to chyba jest najtrudniejsze bo obrazek docelowy nie powinien przekraczac tych wartości) Przy testach z opcją "fill" i "crop" działa poprawnie. Przy opcji "auto" są jeszcze małe bugi. Moze by się komuś chciało z tym pobawić i dopomóc (choć pewnie nie). Za testy też byłbym wdzięczny.
i jeszcze funkcja mime type:
-------------------- http://www.berry.nazwa.pl/edico/public_html/index.php ----> under construction
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Daj jakiś konkretny przykład występowania błędu przy opcji "auto".
-------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
"auto" działa ok ale jak podasz wymiar obrazka wiekszy niż MAX to przy niektórych wielkościach obrazków nie trzyma skali. Wywołanie z opcjami np ("auto", 900, "auto"). Strasznie dużo warunkó jest i sie przy tym gubię.
-------------------- http://www.berry.nazwa.pl/edico/public_html/index.php ----> under construction
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ale czego spodziewasz się na wyjściu przy opcji auto? Co to jest $a_width i $a_height skoro później deklarujesz $_MAX_WIDTH_ i $_MAX_HEIGHT_ ? Trochę nie rozumiem koncepcji tego kodu...
-------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to ze masz zadeklarowaną maksymalną wysokosc i szerokosc jaką moze przyjąc obrazek.
--> podajac np. wartosc w=300 h=auto z obrazka 600x400 generuje sie obrazek o w=300 h=200 --> problem pojawia sie kiedy wpisujesz np w=300 h=auto dla obrazka 600x1600 bo 1600:2 == 800 >= h_max. Wtedy powinien sie wygenerowac obrazek niższy. Takich kombinacji jest wiecej dlatego to takie zagmatwane --> dobrze jest jednak miec pewnosc ze user nie wygeneruje zbyt duzego obrazka w zadnym przypadku. może jeszcze dodam kilka ogólnych założeń: --> z opcją "crop" chcesz mieć ujęcie środka obrazka możliwie bez białych pól (starasz sie też zminiejszyc obrazek trochę aby jak najwiecej z niego nie zostało obcięte) --> z opcją "fill" chcesz mieć cały obrazek widoczny w danym prostokącie ( pojawiają sie białe pola na bokach ) --> z opcją auto chcesz mieć cały obrazek bez białych obramowań i obcinania, a nie chcesz myslec dużo o tym co powstanie ![]() Ten post edytował Black-Berry 24.02.2008, 18:42:21 -------------------- http://www.berry.nazwa.pl/edico/public_html/index.php ----> under construction
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
W funkcji było kilka błędów które powodowały parse error'y. (obcięte linie, chyba coś źle wkleiłeś?)
Poprawiłem je i napisałem procedurę dla 'auto' od nowa ![]() http://twojkod.pl/kod.php?id=36 [opcja pobierz plik, forum nie chciało przyjąć tak długiego posta] Btw, po co Ci sprawdzanie mime, skoro tego później nie wykorzystujesz? Pomijam fakt, że domyślnie PHP nie ma takich funkcji ![]() -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@l0ud Rządzisz! Przeprowadziłem serię testów. Wszystko działa świetnie.
Jeśli chodzi o "mime_type" to w orginale mam jeszcze sprawdzanie mime i converter z plików BMP, ale forum nie przyjmuje tak długich postów. Gdybyś mógł wstawić to tam gdzie Twój kod to wysłałbym Ci na maila całość. Byłoby dla potomności. Teraz wystarczy dorobić to tego jakiś 'fancy' upload panel i będzie mozna zrobić ładny plugin np do TinyMce. Pozdrawiam. -------------------- http://www.berry.nazwa.pl/edico/public_html/index.php ----> under construction
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:26 |