Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][javascript?] miniaturyzacja i skalowanie zdjec
Forum PHP.pl > Forum > PHP
Newsted
A wiec mam taki problem potrzebuje skryptu ktory pobierze z bazy danych adres zdjecia, pomniejszy w locie, wyskaluje i wyswietli. Wszedzie albo jest skrypt na wyswietlanie jednego zdjeica albo nie skaluje albo wyskakuja mi jakies bledy. Znalazlem cos takiego http://repo.urzenia.net/PHP:Class_mImage i po zastosowaniu wyskakuje mi nastepujacy blad :
Warning: Cannot modify header information - headers already sent by (output started at /home/rebeca0/public_html/test.php:2) in /home/rebeca0/public_html/class_mimage.php on line 266
‰PNG  IHDRxx. O co moze chodzic?? Skrypt moze byc albo w javie albo w php
Virti
sposób użycia umieść sobie w pliku np. mImage.php

potem już tylko w html: <img src="mImage.php" alt="miniaturka" />
Newsted
mhm no ok ale jak zrobic zeby ta funkcja wyswietlala mi obrazy z bazy danych?? Chce ja umiescic w petli do.
Force
Cytat
A wiec mam taki problem potrzebuje skryptu ktory pobierze z bazy danych adres zdjecia

Cytat
mhm no ok ale jak zrobic zeby ta funkcja wyswietlala mi obrazy z bazy danych??

Zdecyduj się czy zdjęcie jest w bazie danych czy adres do niego bo z tego co piszesz to jedno przeczy drugiemu.

Poniżej masz funkcje która powinna wyskalować Ci obrazek z podanego adresu

  1. <?php
  2. // łączenie z bazą i twój kod
  3.  
  4. function skaluj($adres, $szerokosc)
  5. {
  6. // funkcja obsługuje również adresy internetowe jak http i ftp
  7. $pobierz = @file_get_contents($adres);
  8. $src = @imagecreatefromstring($pobierz);
  9. if (!$pobierz or !$src ) return false;
  10. unset($pobierz);
  11.  
  12. $pic_width = imagesx($src);
  13. $pic_height = imagesy($src);
  14. if (($szerokosc == $pic_width) or ($szerokosc == null)) return $src;
  15. $mini_width = $szerokosc;
  16. $mini_height = round($szerokosc * ($pic_height/$pic_width));
  17. $mini = imagecreatetruecolor($mini_width, $mini_height);
  18. imagecopyresampled($mini, $src, 0, 0, 0, 0, $mini_width, $mini_height, $pic_width, $pic_height);
  19. return $mini;
  20. }
  21.  
  22. $sql = 'SELECT * FROM obrazki WHERE id = 23'; // przykładowe pytanie sql
  23. $pytanie = mysql_query($sql);
  24. $row = mysql_fetch_assoc($pytanie);
  25. $adres = $row['adres'];
  26.  
  27. $obrazek = skaluj($adres, 300); // druga wartość to szerokość w px
  28. header('Content-type: image/jpeg');
  29. imagejpeg($obrazek, null, 90); // wyświetlenie obrazka przez którąś z funkcji np: imagepng, imgejpeg itd
  30.  
  31. ?>
Newsted
Ok teraz tak przeczytalem gdzies ze miniaturyzacja i skalowanie w locie jest niefajne bo obciaza serwer. Oto moj skrypt dodajacy zdjecie do bazy danych, teraz tak, mam prosbe jezeli ktos by mogl dopisac do niego kod ktory dodatkowo utworzy miniaturke i tez ja zapisze w bazie, nigdzie w necie znalesc odpowiedniego skryptu z php jestem ciemny otwarcie sie przyznam ze php umiem bardzo na wyrywki ciagle sie ucze, ale stronke musze skonczyc szybko. Z gory dzieki za pomoc
  1. <?php
  2. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
  3. {
  4. $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
  5.  
  6. switch ($theType) {
  7. case "text":
  8. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  9. break;
  10. case "long":
  11. case "int":
  12. $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  13. break;
  14. case "double":
  15. $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
  16. break;
  17. case "date":
  18. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  19. break;
  20. case "defined":
  21. $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  22. break;
  23. }
  24. return $theValue;
  25. }
  26.  
  27. $editFormAction = $_SERVER['PHP_SELF'];
  28. if (isset($_SERVER['QUERY_STRING'])) {
  29. $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  30. }
  31.  
  32. if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form2")) {
  33. $updateSQL = sprintf("UPDATE uzytkownicy SET ZDJECIE=%s WHERE ID=%s",
  34.  GetSQLValueString($_POST['zdjecie'], "text"),
  35.  GetSQLValueString($_POST['id'], "int"));
  36.  
  37. mysql_select_db($database_burdelik, $burdelik);
  38. $Result1 = mysql_query($updateSQL, $burdelik) or die(mysql_error());
  39.  
  40. $updateGoTo = "profil_moj.php";
  41. if (isset($_SERVER['QUERY_STRING'])) {
  42. $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
  43. $updateGoTo .= $_SERVER['QUERY_STRING'];
  44. }
  45. header(sprintf("Location: %s", $updateGoTo));
  46. }
  47. $filename = 'upload' ;
  48. // Sprawdzenie, czy formularz zostal przeslany.
  49. if (isset($_POST['submitted'])) {
  50. if($_POST['submitted'] == "TRUE"){
  51. // Sprawdzenie przesylanego pliku.
  52. //if (isset($_FILES['$filename'])) {
  53. $nazwa = date(Y.m.s.d);
  54.  
  55. // Weryfikowanie typu. Plik powinien byc obrazem jpeg, jpg lub gif.
  56. $allowed = array ('image/gif', 'image/jpeg', 'image/jpg', 'image/pjpeg');
  57. if (in_array($_FILES[$filename]['type'], $allowed)) {
  58.  
  59. // Przenoszenie pliku.
  60.  
  61. if (move_uploaded_file($_FILES[$filename]['tmp_name'], 'uploads/'.$nazwa))
  62. {
  63.  
  64.  
  65.  
  66. echo '<p>Plik zostal odebrany!</p>';
  67.  
  68. } else { // Nie udalo sie przeniesc pliku.
  69.  
  70. echo '<p><font color="red">Plik nie zostal odebrany, poniewaz </b>';
  71.  
  72. // Wyswietlanie komunikatu w zaleznosci od bledu.
  73. switch ($_FILES[$filename]['error']) {
  74. case 1:
  75. print 'jego rozmiar przekracza ustawienie upload_max_filesize w pliku php.ini.';
  76. break;
  77. case 2:
  78. print 'jego rozmiar przekracza ustawienie MAX_FILE_SIZE w formularzu HTML.';
  79. break;
  80. case 3:
  81. print 'przeslano tylko jego czesc.';
  82. break;
  83. case 4:
  84. print 'nie przeslano zadnego pliku.';
  85. break;
  86. case 6:
  87. print 'niedostepny byl folder tymczasowy.';
  88. break;
  89. default:
  90. print 'wystapil blad systemowy.';
  91. break;
  92. } // Koniec instrukcji switch.
  93.  
  94. print '</b></font></p>';
  95.  
  96. } // Koniec instrukcji if zwiazanej z przenoszeniem pliku
  97.  
  98. } else { // Bledny typ.
  99. echo '<p><font color="red">Prosze przeslac obraz JPEG lub GIF.</font></p>';
  100. //unlink ($_FILES[$filename]['tmp_name']); // Usuwanie pliku.
  101. }
  102.  
  103. } else { // Nie przeslano pliku.
  104. echo '<p><font color="red">Prosze przeslac obraz JPEG lub GIF mniejszy niz 512 KB.</font></p>';
  105. }
  106.  
  107. //} // Koniec instrukcji warunkowej sprawdzajacej przeslanie formularza.
  108.  
  109. //$insertSQL = sprintf("INSERT INTO uzytkownicy (ZDJECIE) VALUES ('../../log/profil/uploads/$nazwa')");
  110.  
  111. $updateSQL = sprintf("UPDATE uzytkownicy SET ZDJECIE='../../log/profil/uploads/$nazwa' WHERE ID=%s",
  112.  GetSQLValueString($_POST['id'], "int"));
  113.  
  114. mysql_select_db($database_burdelik, $burdelik);
  115. $Result1 = mysql_query($updateSQL, $burdelik) or die(mysql_error());
  116.  
  117. }
  118. ?>
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.