Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nakładanie obrazka na obrazek
Forum PHP.pl > Forum > PHP
Raenlo
Witam, szukam gotowego skryptu do tworzenia avataru, w którym pierwszym obrazkiem jest ramka a drugim obrazek uprzednio wgrany. Jeśli czegoś takiego nie ma to prosze o wskazówki jak i co łopatologicznie to zrobić.

Dziękuje
Crozin
Prawdopodobnie powinieneś tą ramkę wykonać przy pomocy CSS, a nie jako fragment avatara. Jednym z rozwiązań może być ustawienie ramki jako tła dla elementu z avatarem, ewentualnie ustawienie obrazków jako obramowania (nie wspierane przez wszystkie przeglądarki).
Raenlo
A nie ma jakiegoś gotowego skryptu ? Moze byc w php, javie, htmlu ? Przeszukalem troche for ale nie moge znalezc jakiegoś działającego, prosze o pomoc biggrin.gif
Wicepsik
google -> image overlay php
Raenlo
Próbuje coś zrobić ze skryptem znalezionym na necie, ale wywala mi błąd:

  1. An error occurred during file processing.'; } else { echo '
  2. Original image saved as ' . $result[ 0 ] . ''; echo '
  3. Watermarked image saved as ' . $result[ 1 ] . ''; } ?>


Tutaj kody skryptów:

html:

  1. </head>
  2.  
  3. <form action="skrypt.php" method="post" enctype="multipart/form-data">
  4. Select a file to upload for processing<br>
  5. <input type="file" name="File1"><br>
  6. <input type="submit" value="Submit File">
  7. </form>
  8. </body>
  9. </html>


php:
  1. <?php
  2. //--------------------------------
  3. // CREATE WATERMARK FUNCTION
  4. //--------------------------------
  5.  
  6. define( 'WATERMARK_OVERLAY_IMAGE', 'watermark.png' );
  7. define( 'WATERMARK_OVERLAY_OPACITY', 50 );
  8. define( 'WATERMARK_OUTPUT_QUALITY', 90 );
  9.  
  10. function create_watermark( $source_file_path, $output_file_path )
  11. {
  12. list( $source_width, $source_height, $source_type ) = getimagesize( $source_file_path );
  13.  
  14. if ( $source_type === NULL )
  15. {
  16. return false;
  17. }
  18.  
  19. switch ( $source_type )
  20. {
  21. case IMAGETYPE_GIF:
  22. $source_gd_image = imagecreatefromgif( $source_file_path );
  23. break;
  24. case IMAGETYPE_JPEG:
  25. $source_gd_image = imagecreatefromjpeg( $source_file_path );
  26. break;
  27. case IMAGETYPE_PNG:
  28. $source_gd_image = imagecreatefrompng( $source_file_path );
  29. break;
  30. default:
  31. return false;
  32. }
  33.  
  34. $overlay_gd_image = imagecreatefrompng( WATERMARK_OVERLAY_IMAGE );
  35. $overlay_width = imagesx( $overlay_gd_image );
  36. $overlay_height = imagesy( $overlay_gd_image );
  37.  
  38. imagecopymerge(
  39. $source_gd_image,
  40. $overlay_gd_image,
  41. $source_width - $overlay_width,
  42. $source_height - $overlay_height,
  43. 0,
  44. 0,
  45. $overlay_width,
  46. $overlay_height,
  47. WATERMARK_OVERLAY_OPACITY
  48. );
  49.  
  50. imagejpeg( $source_gd_image, $output_file_path, WATERMARK_OUTPUT_QUALITY );
  51.  
  52. imagedestroy( $source_gd_image );
  53. imagedestroy( $overlay_gd_image );
  54. }
  55.  
  56. //--------------------------------
  57. // FILE PROCESSING FUNCTION
  58. //--------------------------------
  59.  
  60. define( 'UPLOADED_IMAGE_DESTINATION', 'originals/' );
  61. define( 'PROCESSED_IMAGE_DESTINATION', 'images/' );
  62.  
  63. function process_image_upload( $Field )
  64. {
  65. $temp_file_path = $_FILES[ $Field ][ 'tmp_name' ];
  66. $temp_file_name = $_FILES[ $Field ][ 'name' ];
  67.  
  68. list( , , $temp_type ) = getimagesize( $temp_file_path );
  69.  
  70. if ( $temp_type === NULL )
  71. {
  72. return false;
  73. }
  74.  
  75. switch ( $temp_type )
  76. {
  77. case IMAGETYPE_GIF:
  78. break;
  79. case IMAGETYPE_JPEG:
  80. break;
  81. case IMAGETYPE_PNG:
  82. break;
  83. default:
  84. return false;
  85. }
  86.  
  87. $uploaded_file_path = UPLOADED_IMAGE_DESTINATION . $temp_file_name;
  88. $processed_file_path = PROCESSED_IMAGE_DESTINATION . preg_replace( '/\\.[^\\.]+$/', '.jpg', $temp_file_name );
  89.  
  90. move_uploaded_file( $temp_file_path, $uploaded_file_path );
  91.  
  92. $result = create_watermark( $uploaded_file_path, $processed_file_path );
  93.  
  94. if ( $result === false )
  95. {
  96. return false;
  97. }
  98. else
  99. {
  100. return array( $uploaded_file_path, $processed_file_path );
  101. }
  102. }
  103.  
  104. //--------------------------------
  105. // END OF FUNCTIONS
  106. //--------------------------------
  107.  
  108. $result = process_image_upload( 'File1' );
  109.  
  110. if ( $result === false )
  111. {
  112.  
  113. echo '<br>An error occurred during file processing.';
  114. }
  115. else
  116. {
  117. echo '<br>Original image saved as <a href="' . $result[ 0 ] . '" target="_blank">' . $result[ 0 ] . '</a>';
  118. echo '<br>Watermarked image saved as <a href="' . $result[ 1 ] . '" target="_blank">' . $result[ 1 ] . '</a>';
  119. }
  120. ?>


W czym tu problem ?
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.