Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] miniatura obrazka, da się zrobić miniaturę bez zapisywania na serwerze oryginału?
Leopard
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 20.07.2008

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


Witam,
mam kod, który pobiera obraz wskazany przez użytkownika (w formularzu za pomocą przycisku "przeglądaj" - "image_filename") i wyświetla jego miniaturę (100x100).

  1. <?php
  2. $FileTempName = $_FILES['image_filename']['name']; //pobranie pliku z formularza i nadanie nazwy tymczasowej (automatycznie)
  3. $ImgDir = 'c:/wamp/www/images/'; //okreslenie miejsca docelowego
  4. $FileName = $ImgDir . $FileTempName; //okreslenie pelnej sciezki dostepu
  5. move_uploaded_file($_FILES['image_filename']['tmp_name'], $FileName); //zapisanie uplodowanego pliku na serwerze
  6.  
  7. list ($width, $height) = getimagesize($FileName); //pobranie danych na temat wgranego obrazu
  8. $MiniImg = imagecreatetruecolor(100,100); // utworzenie pustego obrazu GD
  9. $NormalImg = imagecreatefromjpeg($FileName); // utworzenie z pliku jpg obrazu gotowego do skopiowania w przygotowane wyzej miejsce
  10. imagecopyresampled($MiniImg, $NormalImg, 0, 0, 0, 0, 100, 100, $width, $height); // kopiowanie obrazu w puste miejsce wraz ze zmiana rozdzielczosci
  11.  
  12. $MiniImgName = 'mini_' . $FileTempName; //dodanie przedrostka "mini_" do nazwy uplodowanego pliku
  13. $MiniImgSource = $ImgDir . $MiniImgName; //okreslenie pelnej sciezki dostepu do miniatury
  14.  
  15. imagejpeg($MiniImg, $MiniImgSource); //zapisanie stworzonego obrazka na serwerze
  16. ?>
  17.  
  18. <img src="images/<?php echo $MiniImgName; ?>">


Skrypt najpierw musi zapisać oryginalny obraz żeby wykonać getimagesize(), imagecreatefromjpeg() i imagecopyresampled(). Czy da się to zrobić w taki sposób aby na serwerze została zapisywana tylko miniatura, bez wcześniejszego uplodowania dużego obrazu?
Jak możecie to zerknijcie jeszcze na wpisane przeze mnie komentarze bo nie jestem pewny czy dobrze zrozumiałem co poszczególne funkcje robią.
Dzięki.
Leo


--------------------
Once committed to a full attack, only a fatal bullet will stop a charging Leopard.
Piszę poprawnie po polsku.
Go to the top of the page
+Quote Post
megawebmaster
post
Post #2





Grupa: Zarejestrowani
Postów: 143
Pomógł: 17
Dołączył: 8.11.2008
Skąd: Libiąż

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


Jak inaczej chcesz zrobić miniaturę, jak nie będziesz miał "dużego obrazu"? Przecież jako parametr do getimagesize() możesz podać $_FILES['image_filename']['tmp_name']. I już nie masz zapisywanego. Tylko ostatecznie musisz zapisać miniaturę i koniec.
Go to the top of the page
+Quote Post
Leopard
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 20.07.2008

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


Dzięki, wcześniej próbowałem wstawiać $_FILES['image_filename']['name'] i nie szło, teraz widzę różnicę guitar.gif


--------------------
Once committed to a full attack, only a fatal bullet will stop a charging Leopard.
Piszę poprawnie po polsku.
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 Aktualny czas: 22.08.2025 - 08:47