Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: resize image, copy image, resize to mini
Forum PHP.pl > Forum > PHP
john_doe
Napisałem funkcje skalującą zdjęcia
  1. function resizeImg( $plik, $extension, $height )
  2. {
  3. $rozmiar = getimagesize( $plik );
  4.  
  5. $szerokosc = $rozmiar[0];
  6.  
  7. $wysokosc = $rozmiar[1];
  8.  
  9. $nowa_wysokosc = $height;
  10.  
  11. $nowa_szerokosc = $szerokosc * ( $nowa_wysokosc / $wysokosc );
  12.  
  13. switch( strtolower($extension) )
  14. {
  15. case 'jpg':
  16. $oryginal = imageCreateFromJpeg( $plik );
  17. break;
  18.  
  19. case 'jpeg':
  20. $oryginal = imageCreateFromJpeg( $plik );
  21. break;
  22.  
  23. case 'gif':
  24. $oryginal = imageCreateFromGif( $plik );
  25. break;
  26.  
  27. }
  28.  
  29. $obrazek = ImageCreateTrueColor( $nowa_szerokosc, $nowa_wysokosc );
  30.  
  31. //ImageCopyResized( $obrazek, $oryginal, 0, 0, 0, 0, $nowa_szerokosc, $nowa_wysokosc, $szerokosc, $wysokosc );
  32.  
  33. $image = imagecreatefromjpeg($plik);
  34.  
  35. imagecopyresampled( $obrazek, $image, 0, 0, 0, 0, $nowa_szerokosc, $nowa_wysokosc, $szerokosc, $wysokosc );
  36.  
  37. ImageJPEG( $obrazek, $plik );
  38.  
  39.  
  40. }


wgrywam sobie przez total commandera fotki na serwer po czym zapuszczam taką funkcję
  1. function readDirectory( $path )
  2. {
  3. $files = scandir( $path );
  4. //echo count($files); // tutaj zaczątek by wypisać, że KATALOG JEST PUSTY <-----
  5. echo '<ul>';
  6.  
  7. for( $i = 0 ; $i <= (count($files) - 1) ; $i++ )
  8. {
  9.  
  10. if( $files[$i] == '..' ) continue;
  11.  
  12. if( $files[$i] == '.' )
  13. {
  14. echo '<a href="index.php?level=../../galleries"><-----</a>';
  15. }
  16.  
  17. if( !is_file( $path . $files[$i] ) )
  18. {
  19. if( $files[$i] == '.' ) continue;
  20.  
  21. echo '<li><a href="index.php?level=' . $path . $files[$i] . '">' . $files[$i] . '</a></li>';
  22. }
  23. else
  24. {
  25. echo '<li>' . $files[$i] . '</li>';
  26.  
  27. $imageSize = getimagesize( $path . $files[$i] );
  28.  
  29. $imageHeight = $imageSize[1];
  30.  
  31. if( $imageHeight != 130 && $imageHeight != 500 )
  32. {
  33.  
  34. $fileExtension = end(explode(".", $files[$i]));
  35.  
  36. resizeImg( $path . $files[$i], $fileExtension, 500 );
  37.  
  38. copy( $path . $files[$i], $path . 'mini_' . $files[$i] );
  39.  
  40. resizeImg( $path . 'mini_' . $files[$i], $fileExtension, 130 );
  41.  
  42. }
  43. }
  44.  
  45. }
  46.  
  47. echo '</ul>';
  48.  
  49. }


wszystko działa tak jak chcę jednak samodzielnie tworzy się plik "mini_Thumbs.db"
i skrypt jego też chce zminiaturyzować i wali warningami. dlaczego on powstaje? jak temu zaradzić?
thek
To jest plik windowsowy, który zawiera miniatury plików wyświetlane, jeśli widok ustawisz na Miniatury. Możesz śmiało go usunąć a w opcjach folderów odznaczyć opcję tworzenia miniatur.
grzemach
ewentualnie możesz sprawdzać w skrypcie czy dany plik jest obrazkiem... podpowiem, sprawdzaj mimetype danego pliku smile.gif
krowal
Włącz sobie w swoim windowsie pokazywanie ukrytych plików (i systemowych) i zobacz czy czasem podczas wrzucania na serwer nie wrzucasz tego pliku razem ze zdjęciami.
john_doe
no właśnie nie. sekwencja wyglada tak:
1. wgrywam dwie fotki przez total commandera ( zaznaczam je )
2. uruchamiam skrypt, który leci po katalogu i ... zmniejsza zdjęcie do 600px wysokości, kopiuje je zmniejsza do mini i zapisuje pod tą samą nazwą tylko z przedrostkiem "mini_"

teraz dzieje się tak, że tworzy się plik thumbs.db i gdy się pojawia skrypt go miniaryzuje ( próbuje ) i wali warningami i nie dziwne bo to nie fota. Nadpisałem troszkę tą funkcję o to by olewał NIE ZDJĘCIA.
Wszystko chodzi ok AAAALE smile.gif dlaczego to się tworzy? nie chce tego... narazie działam na WAMP NA lokalu, pewnie jak to wrzucę na home na unixowy serwer tego nie będzie....

pzdr
grzemach
zrobiłem sporo tego typu skryptów i mogę Ci z 100% pewnością powiedzieć że Thumb.db jest tworzyony prze windows (TYLKO I WYŁĄCZNIE), nie przez skrypt php. Dlaczego tworzony jest? pewnie otwierasz ten katalog w windowsa...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.