Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skalowanie zdjęć
irysek110
post 1.05.2005, 10:27:21
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 29.01.2005

Ostrzeżenie: (0%)
-----


Witajcie!

Piszę aukcję internetową. Mam pewien problem...nie wiem jak poprawnie przeskalować zdjęcie, by nie zatraciło swoich proporcji. Bardzo zależałoby mi na tym, by zdjęcia, które umieszczą użytkownicy podczas prezentacji artykułów z bazy nz stronie wyglądały "tak jak należy".
Ma ktoś jakiś pomysłquestionmark.gif

Serdecznie dziękuję za wszelkie podpowiedzi.

Pozdrawiam

Irysek


--------------------
A jak zobaczysz światełko w tunelu to idź w drugą stronę...
Go to the top of the page
+Quote Post
dr_bonzo
post 1.05.2005, 10:30:53
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


To jest czysta matematyka:
* liczysz proporcje przed zmniejszeniem zdjecia (masz 400x300)
* wybierasz docelowa np. dluzsza krawedz 100
* proporcja wynosi 300/400 = 3/4
* krotsza bedzie miala dlugosc: 100 * 3/4 = 75.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
mario
post 1.05.2005, 10:44:44
Post #3





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

Ostrzeżenie: (0%)
-----


Proponuję najpierw użyć pola SZUKAJ na forum a później pisanie nowego posta o tym co już było x razy:

imagecreatefromjpeg - skalowanie
pliki BMP - skalowanie
skalowanie image bez pikselizacji questionmark.gif
Skalowanie obrazkow
skalowanie zdjec
miniatury zdjęć

imagecopyresized
  1. <?php
  2. // File and new size
  3. $filename = 'test.jpg';
  4. $percent = 0.5;
  5.  
  6. // Content type
  7. header('Content-type: image/jpeg');
  8.  
  9. // Get new sizes
  10. list($width, $height) = getimagesize($filename);
  11. $newwidth = $width * $percent;
  12. $newheight = $height * $percent;
  13.  
  14. // Load
  15. $thumb = imagecreate($newwidth, $newheight);
  16. $source = imagecreatefromjpeg($filename);
  17.  
  18. // Resize
  19. imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  20.  
  21. // Output
  22. imagejpeg($thumb);
  23. ?>

imagecopyresampled()
  1. <?php
  2. // The file
  3. $filename = 'test.jpg';
  4.  
  5. // Set a maximum height and width
  6. $width = 200;
  7. $height = 200;
  8.  
  9. // Content type
  10. header('Content-type: image/jpeg');
  11.  
  12. // Get new dimensions
  13. list($width_orig, $height_orig) = getimagesize($filename);
  14.  
  15. if ($width && ($width_orig < $height_orig)) {
  16.  $width = ($height / $height_orig) * $width_orig;
  17. } else {
  18.  $height = ($width / $width_orig) * $height_orig;
  19. }
  20.  
  21. // Resample
  22. $image_p = imagecreatetruecolor($width, $height);
  23. $image = imagecreatefromjpeg($filename);
  24. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
  25.  
  26. // Output
  27. imagejpeg($image_p, null, 100);
  28. ?>


--------------------
W życiu piękne są tyko chwile....
Życie choć piękne tak krótkie jest....
Wystarczy chwila by zgasić je....
Go to the top of the page
+Quote Post
irysek110
post 1.05.2005, 16:30:01
Post #4





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 29.01.2005

Ostrzeżenie: (0%)
-----


Mario!! Pojawił się jeszcze jeden problem...Nie wiem dlaczego. Po zastosowaniu pierwszego kodu, który mi poleciłeś na stronie pojawił się błąd:


Fatal error: Call to undefined function: imagecreate() in ..\skalowanie.php on line 27

Sprawdziłem inny skrypt i okazało się, że funkcja imagecreatetruecolor() też nie działa..:

Fatal error: Call to undefined function: imagecreatetruecolor() in ..\skalowanie2.php on line 27

Mam rozumieć, że moja wersja php (4.3.10) nie obsługuje tych funkcji?
A może należy przestawić coś w pliku php.ini ?

Będę bardzo wdzięczny za pomoc.

Irysek


--------------------
A jak zobaczysz światełko w tunelu to idź w drugą stronę...
Go to the top of the page
+Quote Post
Wave
post 1.05.2005, 17:04:23
Post #5





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

Ostrzeżenie: (0%)
-----


Irysek zobacz komentarze do http://pl.php.net/imagecreate
Go to the top of the page
+Quote Post
mario
post 1.05.2005, 20:30:49
Post #6





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

Ostrzeżenie: (0%)
-----


Cytat(irysek110 @ 2005-05-01 17:30:01)
Mario!! Pojawił się jeszcze jeden problem...Nie wiem dlaczego. Po zastosowaniu pierwszego kodu, który mi poleciłeś na stronie pojawił się błąd:


Fatal error: Call to undefined function: imagecreate() in ..\skalowanie.php on line 27

Sprawdziłem inny skrypt i okazało się, że funkcja imagecreatetruecolor() też nie działa..:

Musisz skompilować php z obsługą biblioteki graficznej PHP_GD.DLL Wszelkie operacje na plikach graficznych są obsługiwane dzięki funkcjom z tej biblioteki.

Generowanie dynamicznej grafiki możliwe jest w języku php przy użyciu funkcji zawartych choćby w bibliotece GD. Bibliotekę GD w wersji dla systemu Windows możemy ściągnąć stąd (160 KB), a posiada ona wsparcie dla następujących formatów graficznych: GIF, PNG, WBMP oraz JPEG.

Po rozpakowaniu zmieniamy nazwę pliku biblioteki z php_gd_gif.dll na php_gd.dll, kopiujemy ją do katalogu gdzie składujemy rozszerzenia dla php
(domyślnie katalog EXTENSIONS) oraz uaktualniamy plik konfiguracyjnym php (php.ini) dodając wpis o ładowaniu tejże biblioteki

extension=php_gd.dll.


Źródło: Biblioteka GD GIF dla Windows


--------------------
W życiu piękne są tyko chwile....
Życie choć piękne tak krótkie jest....
Wystarczy chwila by zgasić je....
Go to the top of the page
+Quote Post
irysek110
post 2.05.2005, 18:29:21
Post #7





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 29.01.2005

Ostrzeżenie: (0%)
-----


Dzięki Mario;) Ale i tak nie działa. Znalazłem bibliotekę php_gd2.dll, umieściłem gdzie trzeba, ale i tak nie działa. Nawet znalazłem w pliku php.ini ścieżkę, która definiuje miejsce składowania bibliotek ładowanych dynamicznie, ustawiłem jak trzeba i nic...
Chyba w takim razie przeinstaluję php z 4.3.10 na 5.0.4 choć nie wiem czy to coś da..zobaczymy....

Serdzecznie dziękuję za pomoc i jeśli Ci jeszcze coś przyjdzie do głowy to chętnie "posłucham".

Pozdrawiam

Irysek


--------------------
A jak zobaczysz światełko w tunelu to idź w drugą stronę...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 23:42