Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [grafika] kolory rgb
Forum PHP.pl > Forum > Przedszkole
macza
  1. <?php
  2. $background = imagecolorallocate($new_img, 255, 255, 255);
  3. imagefill($new_img, 0, 0, $background);
  4. imagecopyresampled($new_img, $img_src, $move_x, $move_y, 0, 0, $new_x, $new_y, $image_x, $image_y);
  5. ?>

mam taki kod i jest tam $background jakie dane podac aby tlo bylo przezroczyste?
Ludvik
Manual... Najlepiej poszukać nazwy funkcji z alpha, takich jak imagecolorallocatealpha" title="Zobacz w manualu php" target="_manual.
macza
czyli jak mam tego uzyc bo ja po angielsku to tak super nie czytam, jak mozn to przyklad na moim skrypcie, thx biggrin.gif
  1. <?php
  2. function resizeImage($source, $max_x, $max_y, $save_image, $jpeg_quality = 100)
  3. {
  4.  /*
  5. * source - obrazek jpeg
  6. * max_x - maksymalna szerokosc pomniejszonego obrazka
  7. * max_y - maksymalna dlugosc pomniejszonego obrazka
  8. * save_image - nazwa pliku do ktorego zostanie zapisany nowy obrazek
  9. * jpeg_quality - jakosc powstalego obrazu jpeg - jezeli bedzie inny to argument jest nie wazny (domyslnie 100)
  10. */
  11.  
  12. if(imgType($source) == "IMAGETYPE_JPEG")
  13. {
  14.  $img_src = imagecreatefromjpeg($source);
  15. }
  16. elseif(imgType($source) == "IMAGETYPE_GIF")
  17. {
  18.  $img_src = imagecreatefromgif($source);
  19. }
  20. elseif(imgType($source) == "IMAGETYPE_PNG")
  21. {
  22.  $img_src = imagecreatefrompng($source);
  23. }
  24. else
  25. {
  26.  die('Wrong filetype! Accepted images: JPG/JPEG, GIF, PNG');
  27. }
  28.  
  29.  $image_x = imagesx($img_src);
  30.  $image_y = imagesy($img_src);
  31.  if($image_x > $image_y) // Landscape
  32.  {
  33. $ratio_x = ($image_x > $max_x) ? $max_x/$image_x : 1;
  34. $ratio_y = $ratio_x;
  35. $move = 'y';
  36.  }
  37.  else // Portrait
  38.  {
  39. $ratio_y = ($image_y > $max_y) ? $max_y/$image_y : 1;
  40. $ratio_x = $ratio_y;
  41. $move = 'x';
  42.  }
  43. $new_x = $image_x*$ratio_x;
  44. $new_y = $image_y*$ratio_y;
  45.  
  46. $move_x = ($move == "x") ? ($max_x-$new_x)/: 0;
  47. $move_y = ($move == "y") ? ($max_y-$new_y)/: 0;
  48.  
  49. $new_img = imagecreatetruecolor($max_x, $max_y);
  50. $background = imagecolorallocate($new_img, 255, 255, 255);
  51. imagefill($new_img, 0, 0, $background);
  52. imagecopyresampled($new_img, $img_src, $move_x, $move_y, 0, 0, $new_x, $new_y, $image_x, $image_y);
  53.  
  54. if(imgType($save_image) == "IMAGETYPE_JPEG")
  55. {
  56.  imagejpeg($new_img, $save_image, 100);
  57. }
  58. elseif(imgType($save_image) == "IMAGETYPE_GIF")
  59. {
  60.  imagegif($new_img, $save_image);
  61. }
  62. elseif(imgType($save_image) == "IMAGETYPE_PNG")
  63. {
  64.  imagepng($new_img, $save_image);
  65. }
  66.  
  67.  echo '<img src="'.$save_image.'" border="0">';
  68. }
  69. ?>

to nie moj skrypt tylko z tego forum biggrin.gif
Ludvik
Zamiast alokować kolor funckją imagecolorallocate, używasz do tego zamiennika który Ci podałem. Jedyna różnica to ostatni argument, który przyjmuje wartość od 0 do 127. Im większa liczba, tym bardziej przezroczysty kolor.
macza
  1. <?php
  2. $new_img = imagecreatetruecolor($max_x, $max_y);
  3. $background = imagecolorallocatealpha($new_image, 255, 255, 255, 75);
  4. imagefill($new_img, 0, 0, $background);
  5. imagecopyresampled($new_img, $img_src, $move_x, $move_y, 0, 0, $new_x, $new_y, $image_x, $image_y);
  6. ?>

tak zrobilem i daje:
Warning: imagecolorallocatealpha(): supplied argument is not a valid Image resource in C:\WebServ\httpd\skype\!gotowe\admin.php on line 488

488: $background = imagecolorallocatealpha($new_image, 255, 255, 255, 75);
Ludvik
Obrazek masz w zmiennej $new_img, a w wywołaniu funkcji podajesz $new_image.
Kicok
Ew. zainteresuj się funkcją imagecolortransparent" title="Zobacz w manualu php" target="_manual
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.