Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] skalowanie obrazka porste
Sasuke Uchiha
post 23.06.2012, 16:07:16
Post #1





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


Chcę wgrywany obrazek na serwer odrazu zmniejszyć do konkretnych wymiarów o dobrej jakości. Oczywiście ustawię sobie mimo to maksymalne wymiary bo zdaje sobie sprawę że przy większych wymiarach może być problem z jakością.

no i niby mam coś takiego
błąd Fatal error: Class 'Imagick' not found in /edit_profil.php on line 15 sad.gif

  1. if($_POST['actions'] == 'upload'){
  2.  
  3. $file_exe = "png";
  4. $rand = rand(1,999999);
  5. $file_type = $_FILES['pliczek']['name'];
  6. $exe = explode('.', $file_type);
  7. $exe_file_image = end($exe);
  8.  
  9. $photo=new Imagick($file_type);
  10. $photo->ThumbnailImage(100,100,true); //skalujemy obrazek
  11.  
  12.  
  13. $avatar = mysql_query("SELECT avatar FROM users WHERE avatar='$rand".$_FILES['pliczek']['name']."'");
  14. if(mysql_num_rows($avatar) == 0){
  15. if($_FILES['pliczek']['size'] < 1024001){
  16. list($width, $height) = getimagesize($_FILES['pliczek']['tmp_name']);
  17. if ($width > 53 || $height > 12) {
  18. if ($file_exe == $exe_file_image){
  19. echo $_FILES['pliczek']['size'];
  20. if (move_uploaded_file($photo)) {
  21.  
  22.  
  23. $sql = mysql_query("UPDATE users SET avatar='$rand".$_FILES['pliczek']['name']."' WHERE id='$id_user'") or die ('mysql_error()');
  24. echo "Plik został załadowany poprawnie..."; echo $exe_file_image;
  25. } else{ echo "Nie dodalo i chuj"; }
  26. } else{ echo "Plik nie jest plikiem PNG"; echo $exe_file_image; }
  27. } else{ echo"walisz kupa wamiarowa"; }
  28. } else{ echo "Nie ten rozmiar"; }
  29. } else{ echo "nie jest dobrze z avataraem"; }
  30. }
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 27)
mac_fly
post 23.06.2012, 16:09:07
Post #2





Grupa: Zarejestrowani
Postów: 46
Pomógł: 18
Dołączył: 11.08.2008
Skąd: 127.0.0.1

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


Takie początkowe pytanie: dodałeś klasę na początku smile.gif?
  1. require_once 'Twoja_klasa.php';
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 23.06.2012, 16:12:58
Post #3





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


cóż w poradniku było tylko tyle nie napisali nic o tej klasie więc nie mam zielonego pojęcia jak to działa wink.gif
Go to the top of the page
+Quote Post
mac_fly
post 23.06.2012, 16:14:44
Post #4





Grupa: Zarejestrowani
Postów: 46
Pomógł: 18
Dołączył: 11.08.2008
Skąd: 127.0.0.1

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


Jeżeli to jest twój cały kod z pliku, i nigdzie nie ma wywołania pliku klasy to musisz dodać na samym początku:
  1. require_once 'lokalizacja/twoja_klasa.php';

i powinno działać smile.gif
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 23.06.2012, 16:17:12
Post #5





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


ale ta klasa jest zdefinowana na serwie w bibliotece podajrze GD

LINK...
Go to the top of the page
+Quote Post
mac_fly
post 23.06.2012, 16:23:54
Post #6





Grupa: Zarejestrowani
Postów: 46
Pomógł: 18
Dołączył: 11.08.2008
Skąd: 127.0.0.1

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


Jaki serwer używasz? Aby na pewno masz zainstalowany ten moduł smile.gif?
Wymagania: 'This extension requires ImageMagick version 6.2.4+ and PHP 5.1.3+.'.

Jeżeli używasz jakiegoś płatnego to musisz dowiedzieć się u dostawcy, a jeżeli używasz Krasnala przerzuć się na XAMPP wink.gif

Pozdrawiam
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 23.06.2012, 17:06:00
Post #7





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


home.pl

Sprawdziłem z obsługą i jest phpinfo();

help ?
Go to the top of the page
+Quote Post
!*!
post 23.06.2012, 17:28:33
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Nie masz tej biblioteki na serwerze. Jest tylko GD. Skontaktuj się z obsługą home.pl, może włączą.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 24.06.2012, 11:21:42
Post #9





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


Obsługa się upiera że IM też jest na serwie dostałem nawet link na pokuszenie ;d
IM
Go to the top of the page
+Quote Post
!*!
post 24.06.2012, 11:29:10
Post #10





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Z tego linku nic nie wynika, może i jestem już stary i ślepy, ale ja nie widzę tam w phpinfo żadnej informacji i IM. Chyba że to nie z Twojego serwera wink.gif tylko inna konfiguracja, ale to i tak nie wyjaśnia dlaczego skrypt nie działa, skoro rzekomi IM jest.

Ten post edytował !*! 24.06.2012, 11:29:32


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 24.06.2012, 12:41:40
Post #11





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


nie wiem czy jest sens z nimi sie dochodzić wysłałem email... może po prostu znajdę inny sposób ktoś coś poleca ? byle nie trzeba było pisać 200 linijek kodu dla głupiego pomniejszenia obrazka bo to mija się z celem.
Go to the top of the page
+Quote Post
!*!
post 24.06.2012, 13:12:44
Post #12





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


http://www.reboo.pl/2010/05/26/image-class-pro/ to dość stara biblioteka pod GD, ale działa, dobrze opisana.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 24.06.2012, 14:51:44
Post #13





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


ee ?
Cytat
Dziękujemy za kontakt.
Rozumiem, iż maja Państwo na myśli bibliotekę ImageMagic.

Korzystanie z funkcji ImageMagic dostępne jest w php za pomocą polecenia:
system('komenda');

Przykłady komend znajdą Państwo np. na stronie: http://www.imagemagick.org/script/convert.php
Sama biblioteka ImageMagic dla PHP nie jest dostępna na naszych serwerach.

W razie pojawienia się pytań lub wątpliwości pozostajemy do dyspozycji.
Go to the top of the page
+Quote Post
!*!
post 24.06.2012, 16:11:00
Post #14





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Haha home.pl nie udostępnia IM z poziomu PHP, ale system już tak? Kolejny przykład tego że trzeba tą firmę omijać z daleka.

Sasuke Uchiha - na podanej przez nich stronie masz polecenia które musisz wykonać w php przy pomocy system()


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 25.06.2012, 00:58:50
Post #15





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


Nie miałem z tym nigdy styczności... i średnio wiem co ja mam zrobić heh. Teraz już wiem że następny abonament biorę w innej firmie po gruntowej analizie bo myślałem że home.pl jest naprawdę porządnym hostingiem ale widocznie się pomyliłem ;[


Ten post edytował Sasuke Uchiha 25.06.2012, 00:59:03
Go to the top of the page
+Quote Post
!*!
post 25.06.2012, 09:01:36
Post #16





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Zamiast
  1. $photo=new Imagick($file_type);
  2. $photo->ThumbnailImage(100,100,true); //skalujemy obrazek


Dajesz

  1. system('convert nazwa_pliku_do_zmiany.jpg -resize 50% miniatura.png');


Opcje convert masz dopisane dokładnie na tamtej stronie.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 25.06.2012, 11:41:15
Post #17





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


No i jak to zrobić niby ?

Warning: Wrong parameter count for move_uploaded_file() in /edit_profil.php on line 25

  1. if($_POST['actions'] == 'upload'){
  2.  
  3. $file_exe = "png";
  4. $rand = rand(1,999999);
  5. $file_type = $_FILES['pliczek']['name'];
  6. $exe = explode('.', $file_type);
  7. $exe_file_image = end($exe);
  8.  
  9.  
  10. $up_files = system('convert '.$file_type.' -size 150x150 miniatura.png');
  11.  
  12. $avatar = mysql_query("SELECT avatar FROM users WHERE avatar='$rand".$_FILES['pliczek']['name']."'");
  13. if(mysql_num_rows($avatar) == 0){
  14. if($_FILES['pliczek']['size'] < 1024001){
  15. list($width, $height) = getimagesize($_FILES['pliczek']['tmp_name']);
  16. if ($width > 53 || $height > 12) {
  17. if ($file_exe == $exe_file_image){
  18. echo $_FILES['pliczek']['size'];
  19. if (move_uploaded_file("$file_type")) {
  20.  
  21.  
  22. $sql = mysql_query("UPDATE users SET avatar='$rand".$_FILES['pliczek']['name']."' WHERE id='$id_user'") or die ('mysql_error()');
  23. echo "Plik został załadowany poprawnie..."; echo $exe_file_image;
  24. } else{ echo "Nie dodalo i chuj"; }
  25. } else{ echo "Plik nie jest plikiem PNG"; echo $exe_file_image; }
  26. } else{ echo"walisz kupa wamiarowa"; }
  27. } else{ echo "Nie ten rozmiar"; }
  28. } else{ echo "nie jest dobrze z avataraem"; }
  29. }
Go to the top of the page
+Quote Post
!*!
post 25.06.2012, 11:48:18
Post #18





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


system() nie masz przepisać do zmiennej, bo Ci nic nie zwraca. Trochę namieszałeś. Inie przekazujesz wszystkich danych http://php.net/move_uploaded_file

  1. if (move_uploaded_file($file_type)){


I pokaż całość, a nie tylko fragment, a jak już to konkretną linię tu na forum.

Ten post edytował !*! 25.06.2012, 11:52:33


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 25.06.2012, 11:52:33
Post #19





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


kurde ja nie wiem już sam jak to zrobić żeby wgrywany obrazek odrazu zmniejszało do konkretnego wymiaru i dopiero zapisać na serwie:businesssmiley:
Go to the top of the page
+Quote Post
!*!
post 25.06.2012, 11:55:40
Post #20





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


move_uploaded_file przeczytaj to. Wgraj obraz na serwer, jak już będzie, to zrób wtedy miniaturę.

  1. system('convert '.$file_type.' -size 150x150 miniatura.png');


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 25.06.2012, 11:57:31
Post #21





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


  1. <?php
  2. $edit_user = "SELECT id, login, password, email, phone, first_name, last_name, gadu_gadu, status, level, games, premium, clan, points_shop, age, info, sex, location, city, avatar, photo, views, active, site
  3. FROM users WHERE id=".$id_user."" or die('mysql_error');
  4. $result_edit_user = mysql_query($edit_user);
  5. $row_edit_user = mysql_fetch_array($result_edit_user);
  6.  
  7. if($_POST['actions'] == 'upload'){
  8.  
  9. $file_exe = "png";
  10. $rand = rand(1,999999);
  11. $file_type = $_FILES['pliczek']['name'];
  12. $exe = explode('.', $file_type);
  13. $exe_file_image = end($exe);
  14.  
  15.  
  16. $up_files = system('convert '.$file_type.' -size 150x150 miniatura.png');
  17.  
  18. $avatar = mysql_query("SELECT avatar FROM users WHERE avatar='$rand".$_FILES['pliczek']['name']."'");
  19. if(mysql_num_rows($avatar) == 0){
  20. if($_FILES['pliczek']['size'] < 1024001){
  21. list($width, $height) = getimagesize($_FILES['pliczek']['tmp_name']);
  22. if ($width > 53 || $height > 12) {
  23. if ($file_exe == $exe_file_image){
  24. echo $_FILES['pliczek']['size'];
  25. if (move_uploaded_file($up_files)) {
  26.  
  27.  
  28. $sql = mysql_query("UPDATE users SET avatar='$rand".$_FILES['pliczek']['name']."' WHERE id='$id_user'") or die ('mysql_error()');
  29. echo "Plik został załadowany poprawnie..."; echo $exe_file_image;
  30. } else{ echo "Nie dodalo i chuj"; }
  31. } else{ echo "Plik nie jest plikiem PNG"; echo $exe_file_image; }
  32. } else{ echo"walisz kupa wamiarowa"; }
  33. } else{ echo "Nie ten rozmiar"; }
  34. } else{ echo "nie jest dobrze z avataraem"; }
  35. }
  36. <form method="post" action="index_test.php?site=edit_profil" enctype="multipart/form-data">
  37. <input type="hidden" name="MAX_FILE_SIZE" value="30000">
  38.  
  39. Wybierz plik który chcesz umieścić na serwerze:<br>
  40.  
  41. <input type="file" name="pliczek" size="40"><br>
  42. <input type="submit" name="actions" value="upload">
  43. </form>';


Cytat(!*! @ 25.06.2012, 12:55:40 ) *
move_uploaded_file przeczytaj to. Wgraj obraz na serwer, jak już będzie, to zrób wtedy miniaturę.

  1. system('convert '.$file_type.' -size 150x150 miniatura.png');


no ale ja tak właśnie nie chcę...
Go to the top of the page
+Quote Post
!*!
post 25.06.2012, 11:58:20
Post #22





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Nie podajesz ścieżki przy wgrywanym pliku.

Cytat
no ale ja tak właśnie nie chcę...

Dlaczego?

Ten post edytował !*! 25.06.2012, 11:58:46


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 25.06.2012, 12:00:10
Post #23





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


bo nie chcę wgrywać dużych formatów które są zbędne i nie zostaną wykorzystane w żadnym wypadku ? ;/
Go to the top of the page
+Quote Post
!*!
post 25.06.2012, 12:02:00
Post #24





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Myślę że nie rozumiesz zasad działania własnego skryptu. Zleć to komuś, albo zastosuj się do wskazówek wyżej, bo one działają i tak to powinno wyglądać.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 25.06.2012, 12:04:00
Post #25





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


tak masz rację załóżmy że będzie 20 tysięcy userów i co ? wszyscy mają sobie mieć prawo składować bezużyteczne duże formaty avatarów ? pomyśl o trasnferze
Go to the top of the page
+Quote Post
!*!
post 25.06.2012, 12:05:40
Post #26





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Żeby coś zmniejszyć, najpierw musisz to wgrać na serwer, stworzyć miniaturę i skasować oryginał. Nie można tego zrobić w locie.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Sasuke Uchiha
post 25.06.2012, 12:18:43
Post #27





Grupa: Zarejestrowani
Postów: 99
Pomógł: 0
Dołączył: 5.03.2012

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


ok działa teraz tylko muszą zrobić jeszcze aby odrazu usuwało tamtą wersję i będzie git

ok jednak nie działa tzn nie zmienia wymiaru

  1. if (move_uploaded_file($_FILES['pliczek']['tmp_name'], "img/avatars/$rand.png")) {
  2.  
  3. system('convert img/avatars/'.$rand.'.png -size 255x150 img/avatars/'.$rand.'.png');
  4. $sql = mysql_query("UPDATE users SET avatar='$rand".$_FILES['pliczek']['name']."' WHERE id='$id_user'") or die ('mysql_error()');
  5. echo "Plik został załadowany poprawnie..."; echo $exe_file_image;
  6. }


dobra dla potomnych zrobiłem to tak że najpierw oczywiście wgrywa normalną wersję a zaraz potem wybiera ten obrazek z serwera pomniejsza go i zapisuje o takiej samej nazwie co powoduje nadpisanie i duża wersja zwyczajnie znika smile.gif

  1. system('convert img/avatars/'.$rand.'.png -resize 20x20 img/avatars/'.$rand.'.png');


Ten post edytował Sasuke Uchiha 25.06.2012, 12:34:53
Go to the top of the page
+Quote Post
!*!
post 25.06.2012, 13:46:34
Post #28





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


  1. if (move_uploaded_file($_FILES['pliczek']['tmp_name'], "img/avatars/$rand.png")) {


2 parametr to nie ma być nazwa pliku, a miejsce docelowe jego zapisu, katalog.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 18.07.2025 - 02:37