Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Facebook Share obrazka z divem - udostępnianie zawartości
Forum PHP.pl > Forum > Przedszkole
brzanek
Witam czy jest możliwość przesłania obrazka z nałożonymi danymi na niego za pomocą div na facebooka za pomocą funkcji share.
Tak wygląda cały obrazek z kodem
  1. <?php
  2.  
  3. ?>
  4. <meta charset="UTF-8">
  5. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/weather-icons/2.0.5/css/weather-icons.min.css">
  6. <link href="css/mapa_dzis.css" rel="stylesheet">
  7. <?php
  8. $con=mysql_connect('host','login','haslo');
  9. mysql_select_db("nazwa_bazy", $con);
  10. mysql_query("SET CHARSET utf8");
  11.  
  12. $tempArray4=array(
  13. '-20' => '#9179F8',
  14. '-19' => '#8477F9',
  15. '-18' => '#7775F9',
  16. '-17' => '#727BF9',
  17. '-16' => '#7085F9',
  18. '-15' => '#6D8FF9',
  19. '-14' => '#6B99F9',
  20. '-13' => '#68A4F9',
  21. '-12' => '#66AFF9',
  22. '-11' => '#64BBFA',
  23. '-10' => '#61C7FA',
  24. '-9' => '#5FD3FA',
  25. '-8' => '#5CE0FA',
  26. '-7' => '#5AEEFA',
  27. '-6' => '#57FAF9',
  28. '-5' => '#55FAEB',
  29. '-4' => '#52FADC',
  30. '-3' => '#50FBCD',
  31. '-2' => '#4DFBBE',
  32. '-1' => '#4BFBAE',
  33. '0' => '#48FB9E',
  34. '1' => '#46FB8D',
  35. '2' => '#43FB7C',
  36. '3' => '#41FB6A',
  37. '4' => '#3EFB58',
  38. '5' => '#3CFC46',
  39. '6' => '#40FC39',
  40. '7' => '#4FFC37',
  41. '8' => '#5DFC35',
  42. '9' => '#6DFC32',
  43. '10' => '#7DFC30',
  44. '11' => '#8DFC2D',
  45. '12' => '#9DFC2A',
  46. '13' => '#AEFD28',
  47. '14' => '#C0FD25',
  48. '15' => '#D2FD23',
  49. '16' => '#E4FD20',
  50. '17' => '#F7FD1E',
  51. '18' => '#FDF01B',
  52. '19' => '#FDDC19',
  53. '20' => '#FDC816',
  54. '21' => '#FDC816',
  55. '22' => '#FEB414',
  56. '23' => '#FEB414',
  57. '24' => '#FE9F11',
  58. '25' => '#FE9F11',
  59. '26' => '#FE890F',
  60. '27' => '#FE890F',
  61. '28' => '#FE730C',
  62. '29' => '#FE730C',
  63. '30' => '#FE5D0A',
  64. );
  65. //dzień
  66.  
  67. $dzien["Monday"] = "Poniedziałek";
  68. $dzien["Tuesday"] = "Wtorek";
  69. $dzien["Wednesday"] = "Środa";
  70. $dzien["Thursday"] = "Czwartek";
  71. $dzien["Friday"] = "Piątek";
  72. $dzien["Saturday"] = "Sobota";
  73. $dzien["Sunday"] = "Niedziela";
  74. {
  75. $result = mysql_query("SELECT * FROM prognoza WHERE wid_miasto =1 ORDER BY id ASC LIMIT 1,1") or die(mysql_error());
  76. while($row = mysql_fetch_array($result)) {
  77. echo '<div class="dzienp0">'.$dzien[date("l", $row['wtime'])].' '.date("d/m/Y", $row['wtime']).'</div>';
  78. echo "<div class=''>";
  79. }
  80. }
  81. echo "<div class='tlo23'>";
  82. {
  83. $result = mysql_query("SELECT * FROM prognoza WHERE wid_miasto =1 ORDER BY id ASC LIMIT 1") or die(mysql_error());
  84. while($row = mysql_fetch_array($result)) { ?>
  85. <div class="choszcznop0" data-toggle="tooltip" data-placement="top"><i class="wi wi-forecast-io-<?php echo $row['wicon'];?>"></i></div>
  86. <?php echo "<div class='choszcznop0temp' data-toggle='tooltip' data-placement='top' title='Temperatura max &deg;C' style='color: ".$tempArray4[ceil($row['wtemperatureMax'])].";'> ".$row['wtemperatureMax']."&deg;C</div>"; ?>
  87. <?php }
  88. }
  89. {
  90. $result = mysql_query("SELECT * FROM prognoza WHERE wid_miasto =7 ORDER BY id ASC LIMIT 1") or die(mysql_error());
  91. while($row = mysql_fetch_array($result)) { ?>
  92. <div class="debnop0" data-toggle="tooltip" data-placement="top"><i class="wi wi-forecast-io-<?php echo $row['wicon'];?>"></i></div>
  93. <?php echo "<div class='debnop0temp' data-toggle='tooltip' data-placement='top' title='Temperatura max &deg;C' style='color: ".$tempArray4[ceil($row['wtemperatureMax'])].";'> ".$row['wtemperatureMax']."&deg;C</div>"; ?>
  94. <?php }
  95. }
  96.  
  97. {
  98. $result = mysql_query("SELECT * FROM prognoza WHERE wid_miasto =2 ORDER BY id ASC LIMIT 1") or die(mysql_error());
  99. while($row = mysql_fetch_array($result)) { ?>
  100. <div class="szczecinp0" data-toggle="tooltip" data-placement="top"><i class="wi wi-forecast-io-<?php echo $row['wicon'];?>"></i></div>
  101. <?php echo "<div class='szczecinp0temp' data-toggle='tooltip' data-placement='top' title='Temperatura max &deg;C' style='color: ".$tempArray4[ceil($row['wtemperatureMax'])].";'> ".$row['wtemperatureMax']."&deg;C</div>"; ?>
  102. <?php }
  103. }
  104. {
  105. $result = mysql_query("SELECT * FROM prognoza WHERE wid_miasto =4 ORDER BY id ASC LIMIT 1") or die(mysql_error());
  106. while($row = mysql_fetch_array($result)) { ?>
  107. <div class="swinoujsciep0" data-toggle="tooltip" data-placement="top"><i class="wi wi-forecast-io-<?php echo $row['wicon'];?>"></i></div>
  108. <?php echo "<div class='swinoujsciep0temp' data-toggle='tooltip' data-placement='top' title='Temperatura max &deg;C' style='color: ".$tempArray4[ceil($row['wtemperatureMax'])].";'> ".$row['wtemperatureMax']."&deg;C</div>"; ?>
  109. <?php }
  110. }
  111. {
  112. $result = mysql_query("SELECT * FROM prognoza WHERE wid_miasto =8 ORDER BY id ASC LIMIT 1") or die(mysql_error());
  113. while($row = mysql_fetch_array($result)) { ?>
  114. <div class="drawskop0" data-toggle="tooltip" data-placement="top"><i class="wi wi-forecast-io-<?php echo $row['wicon'];?>"></i></div>
  115. <?php echo "<div class='drawskop0temp' data-toggle='tooltip' data-placement='top' title='Temperatura max &deg;C' style='color: ".$tempArray4[ceil($row['wtemperatureMax'])].";'> ".$row['wtemperatureMax']."&deg;C</div>"; ?>
  116. <?php }
  117. }
  118. {
  119. $result = mysql_query("SELECT * FROM prognoza WHERE wid_miasto =3 ORDER BY id ASC LIMIT 1") or die(mysql_error());
  120. while($row = mysql_fetch_array($result)) { ?>
  121. <div class="koszalinp0" data-toggle="tooltip" data-placement="top"><i class="wi wi-forecast-io-<?php echo $row['wicon'];?>"></i></div>
  122. <?php echo "<div class='koszalinp0temp' data-toggle='tooltip' data-placement='top' title='Temperatura max &deg;C' style='color: ".$tempArray4[ceil($row['wtemperatureMax'])].";'> ".$row['wtemperatureMax']."&deg;C</div>"; ?>
  123. <?php }
  124. }
  125. echo "<div class='loogo'></div>";
  126. echo '</div>';
  127. echo '</div>';
  128. ?>
  129. <script>
  130. $(function () {
  131. $('[data-toggle="tooltip"]').tooltip()
  132. })
  133. </script>
  134.  
  135. <?php
  136. ?>

Tak wygląda strona z tym obrazkiem
http://brzanek.webd.pl/28082017/prognoza/d...y/woj_1test.php

trueblue
Nie jest możliwa. Wygeneruj gotowy obrazek.
brzanek
No właśnie też o tym myślałem ale jak to zrobić. Mogę prosić o pomoc?
brzanek
Dzięki za linki ale nic mi one nie dały próbuje próbuję i nic mi nie wychodzi.
trueblue
To pokaż te próby.
brzanek
Robiłem to na przykładzie takim
  1. <?php
  2. // Create a destination
  3. $dest = 'images/new_name4.jpg';
  4. // Get contents from original spot
  5. $im = imagecreatefromjpeg("http://pogoda-zachodniopomorskie.pl/prognoza/darksky/images/malamapaw.jpg");
  6.  
  7. $white = imagecolorallocate($im, 255, 255, 255);
  8. $grey = imagecolorallocate($im, 128, 128, 128);
  9. $black = imagecolorallocate($im, 0, 0, 0);
  10. // Save to disk in the new spot and name
  11.  
  12. // The text to draw
  13. $text = 'Testing...';
  14. // Replace path by your own font path
  15. $font = 'arial.ttf';
  16. imagettftext($im, 20, 0, 11, 21, $white, $font, $text);
  17. imagejpeg($im,$dest);
  18. // Destroy image
  19. imagedestroy($im);

Ale nic mi nie zapisuje na obrazku.
Najpierw chcę doprowadzić do zapisania obrazka z dowolnym tekstem potem będę martwił się jak do tego podpiąć temperaturę i ikonki.
trueblue
http://php.net/manual/en/function.imagettftext.php - parametr fontfile
brzanek
Ok już mi się udało a jak można poprawić jakość tego obrazka wygenerowanego bo jest słabej jakości.
  1. <?php
  2. ?>
  3.  
  4. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/weather-icons/2.0.5/css/weather-icons.min.css">
  5. <link href="http://brzanek.webd.pl/28082017/prognoza/darksky/css/mapa_dzis.css" rel="stylesheet">
  6. <?
  7.  
  8. $con=mysql_connect('host','login','haslo');
  9. mysql_select_db("nazwabazy", $con);
  10. mysql_query("SET CHARSET utf8");
  11.  
  12. $t=time();
  13. // Create a destination
  14. $dest = "images/".date("d_m_Y_H_i_s",$t)."_".$t.".jpg";
  15. // Get contents from original spot
  16. $im = imagecreatefromjpeg("http://pogoda-zachodniopomorskie.pl/prognoza/darksky/images/malamapaw.jpg");
  17.  
  18. $white = imagecolorallocate($im, 255, 255, 255);
  19. $grey = imagecolorallocate($im, 128, 128, 128);
  20. $black = imagecolorallocate($im, 0, 0, 0);
  21. // Save to disk in the new spot and name
  22.  
  23. $dzien["Monday"] = "Poniedziałek";
  24. $dzien["Tuesday"] = "Wtorek";
  25. $dzien["Wednesday"] = "Środa";
  26. $dzien["Thursday"] = "Czwartek";
  27. $dzien["Friday"] = "Piątek";
  28. $dzien["Saturday"] = "Sobota";
  29. $dzien["Sunday"] = "Niedziela";
  30.  
  31. $result = mysql_query("SELECT * FROM prognoza WHERE wid_miasto =1 ORDER BY id ASC LIMIT 1,1") or die(mysql_error());
  32. while($row = mysql_fetch_array($result)) {
  33. $text = ''.$dzien[date("l", $row['wtime'])].' '.date("d/m/Y", $row['wtime']).'';
  34. }
  35.  
  36. // Replace path by your own font path
  37. $font = 'arial.ttf';
  38. imagettftext($im, 12, 0, 11, 21, $white, $font, $text);
  39. imagettftext($im, 12, 0, 31, 41, $black, $font, $text);
  40. imagejpeg($im,$dest);
  41. // Destroy image
  42. imagedestroy($im);


Jeszcze jedno jak postąpić z ikoną która generowana jest z czcionek z tekstem poradziłem sobie
  1. $text = ''.$dzien[date("l", $row['wtime'])].' '.date("d/m/Y", $row['wtime']).'';

Ale ikona
  1. $ikona = '<i class="wi wi-forecast-io-'.$row['wicon'].'"></i>';

Na generowanym obrazku pojawia się zamiast ikony kod <i class="wi wi-forecast-io-'.$row['wicon'].'"></i>
trueblue
Cytat(brzanek @ 6.02.2018, 14:15:59 ) *
Ok już mi się udało a jak można poprawić jakość tego obrazka wygenerowanego bo jest słabej jakości.

Wszystko jest w dokumentacji metody imagejpeg.

Cytat(brzanek @ 6.02.2018, 14:15:59 ) *
Jeszcze jedno jak postąpić z ikoną która generowana jest z czcionek z tekstem poradziłem sobie

Dokładnie tak samo jak z tekstem.
brzanek
Ok jakość poprawiłem
  1. imagejpeg($im,$dest, 100);

Ale z ikonką nie daję rady jeśli postępować tak jak z tekstem to dlaczego to nie działa?
  1. $ikona = '<i class="wi wi-forecast-io-'.$row['wicon'].'"></i>';
trueblue
Tekst też wstawiasz jako HTML?
Skoro każda ikona w czcionce, to "litera", to taką masz wstawiać.
brzanek
Pozmieniałem trochę kod
  1. <?php
  2. ?>
  3.  
  4. <link href="https://cdnjs.cloudflare.com/ajax/libs/weather-icons/2.0.5/css/weather-icons.min.css" rel="stylesheet">
  5. <link href="http://brzanek.webd.pl/28082017/prognoza/darksky/css/mapa_dzis.css" rel="stylesheet">
  6. <?
  7. include('db.php');
  8.  
  9. $t=time();
  10. // Create a destination
  11. //$dest = "images/".date("d_m_Y_H_i_s",$t)."_".$t.".jpg";
  12. $dest = "images/".date("d_m_Y").".jpg";
  13. // Get contents from original spot
  14. $im = imagecreatefromjpeg("http://pogoda-zachodniopomorskie.pl/prognoza/darksky/images/malamapaw.jpg");
  15.  
  16. $white = imagecolorallocate($im, 255, 255, 255);
  17. $grey = imagecolorallocate($im, 128, 128, 128);
  18. $black = imagecolorallocate($im, 0, 0, 0);
  19. // Save to disk in the new spot and name
  20.  
  21. $dzien["Monday"] = "Poniedziałek";
  22. $dzien["Tuesday"] = "Wtorek";
  23. $dzien["Wednesday"] = "Środa";
  24. $dzien["Thursday"] = "Czwartek";
  25. $dzien["Friday"] = "Piątek";
  26. $dzien["Saturday"] = "Sobota";
  27. $dzien["Sunday"] = "Niedziela";
  28.  
  29. $icon=array(
  30. 'clear-day' => '\u{f00d}',
  31. 'clear-night' => '\u{f02e}',
  32. 'rain' => '\u{f019}',
  33. 'snow' => '\u{f01b}',
  34. 'sleet' => '\u{f0b5}',
  35. 'wind' => '\u{f050}',
  36. 'fog' => '\u{f014}',
  37. 'cloudy' => '\u{f013}',
  38. 'partly-cloudy-day' => '\u{f002}',
  39. 'partly-cloudy-night' => '\u{f031}',
  40. );
  41.  
  42. $result = $mysqli->query("SELECT * FROM prognoza WHERE wid_miasto =1 ORDER BY id ASC LIMIT 1");
  43. while ( $row = mysqli_fetch_array($result) ) {
  44.  
  45.  
  46. $text = ''.$dzien[date("l", $row['wtime'])].' '.date("d/m/Y", $row['wtime']).'';
  47. $tempmax = ''.$row['wtemperatureMax'].'';
  48. $tempmin = ''.$row['wtemperatureMin'].'';
  49. $ikona = ''.$icon[($row['wicon'])].'';
  50. //$ikona = '<i class="wi wi-forecast-io-'.$row['wicon'].'"></i>';
  51. }
  52. $result = $mysqli->query("SELECT * FROM prognoza WHERE wid_miasto =2 ORDER BY id ASC LIMIT 1");
  53. while ( $row = mysqli_fetch_array($result) ) {
  54. $tempmax1 = ''.$row['wtemperatureMax'].'';
  55. $tempmin1 = ''.$row['wtemperatureMin'].'';
  56. $ikona1 = ''.$icon[($row['wicon'])].'';
  57. //$ikona = '<i class="wi wi-forecast-io-'.$row['wicon'].'"></i>';
  58. }
  59. //$ikona = "\u{f00d}";
  60. //$ikona1 = "\u{f00d}";
  61. // Replace path by your own font path
  62. $font = 'arial.ttf';
  63. $fonticon = '/weather-icons-master/font/weathericons-regular-webfont.ttf';
  64. imagettftext($im, 12, 0, 11, 31, $white, $font, $text);
  65. imagettftext($im, 10, 0, 101, 181, $white, $font, $tempmax);
  66. imagettftext($im, 10, 0, 101, 194, $white, $font, $tempmin);
  67. imagettftext($im, 24, 0, 141, 195, $white, $fonticon, $ikona);
  68. imagettftext($im, 10, 0, 25, 141, $white, $font, $tempmax1);
  69. imagettftext($im, 10, 0, 25, 154, $white, $font, $tempmin1);
  70. imagettftext($im, 24, 0, 62, 155, $white, $fonticon, $ikona1);
  71. imagejpeg($im,$dest, 100);
  72. // Destroy image
  73. imagedestroy($im);

Ikona nadal nie wyświetla się ale jeśli dam ją na sztywno to jest ok.
  1. $ikona1 = "\u{f00d}";
trueblue
To sprawdź co otrzymujesz w $row['wicon'].
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.