-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathweather.php
52 lines (39 loc) · 2.58 KB
/
weather.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
// Вывод прогноза погоды для устройств с экраном для проекта ESP32 Ready4Sky (R4S) Gateway for Redmond+ devices (@alutov)
// загружаем картинку с прогнозом погоды:
$image = imagecreatefrompng('https://ru.wttr.in/Домодедово аэропорт_0qpn.png');
// сохраняем временный файл для редактирования в папке со скриптом:
imagepng($image, 'weather_temp.png');
$filename = 'weather_temp.png';
// назначение нового размера рисунка, 320x172 - при использовании одной строки информации на шлюзе,
// при использовании двух строк достаточно разрешения картинки 320x144.
list($width, $height) = getimagesize($filename);
$newwidth = 320;
$newheight = 172;
// задаем коэфициент для изменения размера изображения для вставки с сохранением пропорций оригинального изображения:
$rate = '1.32';
$pastewidth = $width * $rate;
$pasteheight = $height * $rate;
// загрузка переменных для конвертации:
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefrompng($filename);
// загрузка переменных для вставки даты:
$date = date('H:i:s, d.m.Y');
$font = "fonts/SourceCodePro-Regular.ttf"; // путь к шрифту
$color = imageColorAllocate($thumb, 252, 252, 238); //Цвет шрифта
$text = "↺ $date"; // произвольный текст
$font_size = 13; // размер шрифта
// изменение размера, смещение рисунка при необходимости:
imagecopyresampled($thumb, $source, 0, 0, 13, 6, $pastewidth, $pasteheight, $width, $height);
// вставка даты и времени генерации ринунка, смещение текста при необходимости:
imagettftext($thumb, $font_size, 0, 96, 168, $color, $font, $text);
// устанавливаем тип содержимого:
header('content-Type: image/jpg');
// сохранение готового изображения, имя, качество, вывод изображения на экран браузера:
imagejpeg($thumb, 'weather.jpg', 95);
imagejpeg($thumb);
// удаляем временный файл и очищаем память:
unlink('weather_temp.png');
imagedestroy($image);
imagedestroy($thumb);
?>