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).
<?php $FileTempName = $_FILES['image_filename']['name']; //pobranie pliku z formularza i nadanie nazwy tymczasowej (automatycznie) $ImgDir = 'c:/wamp/www/images/'; //okreslenie miejsca docelowego $FileName = $ImgDir . $FileTempName; //okreslenie pelnej sciezki dostepu move_uploaded_file($_FILES['image_filename']['tmp_name'], $FileName); //zapisanie uplodowanego pliku na serwerze $MiniImg = imagecreatetruecolor(100,100); // utworzenie pustego obrazu GD $NormalImg = imagecreatefromjpeg($FileName); // utworzenie z pliku jpg obrazu gotowego do skopiowania w przygotowane wyzej miejsce imagecopyresampled($MiniImg, $NormalImg, 0, 0, 0, 0, 100, 100, $width, $height); // kopiowanie obrazu w puste miejsce wraz ze zmiana rozdzielczosci $MiniImgName = 'mini_' . $FileTempName; //dodanie przedrostka "mini_" do nazwy uplodowanego pliku $MiniImgSource = $ImgDir . $MiniImgName; //okreslenie pelnej sciezki dostepu do miniatury imagejpeg($MiniImg, $MiniImgSource); //zapisanie stworzonego obrazka na serwerze ?>
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