From 6f84c60bdb704c3b038881dd8353fc9881329c87 Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Sun, 12 Aug 2012 12:49:35 +0000 Subject: [PATCH] 1. Dodanie brakujących plików z klasami BotImage oraz BotImageGG. 2. Uzupełnienie instrukcji tworzenia modułów o obsługę obrazków przychodzących. --- class/BotImage.php | 7 +++++++ MODULES.html | 23 ++++++++++++++++++++++- class/BotImageGG.php | 26 ++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletions(-) diff --git a/MODULES.html b/MODULES.html index 1cb7e02..7b1ab7b 100755 --- a/MODULES.html +++ b/MODULES.html @@ -60,7 +60,7 @@ | |\/| | | | | | | | | | | | | | | / \ / | | | | | |__| | | |__/ | | |__| | | |____ | | |__| |__| \______/ |_______/ \______/ |_______| |__| -Poradnik v2.0 Tworzenie i edycja +Poradnik v2.1 Tworzenie i edycja </pre> <h3 id="tableOfContent">Spis treści</h3> @@ -331,6 +331,27 @@ <code><var>$msg<b>-></b>args</var></code> </pre> +<h4 id="classBotMessage_propertyImages">Pole $images</h4> + +<p>Tablica obrazków (obiektów klasy BotImage) przesłanych do bota przez użytkownika.</p> + +<pre> +<code><b>if(<a href="http://php.net/assert"><var>count</var></a>(<var>$msg</var>-><var>images</var>) > <var>0</var>) {</b> + <i>// Do bota zostały przesłane obrazki</i> + + <i>// Pierwszy obrazek</i> + <var>$img <b>=</b> $msg<b>-></b>images</var><b>[<var>0</var>];</b> + + <i>// Obrazek w formie gotowej do obróbki za pomocą biblioteki GD</i> + <var>$gd <b>=</b> $img<b>-></b>getImage</var><b>();</b> + <a href="http://php.net/imagestring"><var>imagestring</var></a><b>(</b><var>$gd<b>,</b> 2<b>,</b> 0<b>,</b> 0</var><b>, <cite>'To jest tekst'</cite>,</b> <a href="http://php.net/imagecolorallocate"><var>imagecolorallocate</var></a><b>(<var>$gd<b>,</b> 255<b>,</b> 255<b>,</b> 255</var>));</b> + + <i>// Obrazek jako ciąg bajtów gotowych do zapisu:</i> + <var>$data <b>=</b> $img<b>-></b>getImageData</var><b>();</b> + <a href="http://php.net/file_put_contents"><var>file_put_contents</var></a><b>(<cite>'/tmp/obrazek.jpg'</cite>, <var>$data</var>);</b> +<b>}</b></code> +</pre> + <h3 id="interfaceBotModule">Komunikacja z użytkownikiem - interfejs BotModule</h3> <p>Zgodnie z danymi zwracanymi przez <a href="#interfaceBotModuleInit_methodRegister">metodę register</a>, należy utworzyć plik zawierający klasę o podanej nazwie, implementującą BotModule, oraz odpowiednią metodę, przyjmującą dwa parametry:</p> diff --git a/class/BotImage.php b/class/BotImage.php new file mode 100644 index 0000000..c02bcf0 --- /dev/null +++ b/class/BotImage.php @@ -0,0 +1,7 @@ +<?php +abstract class BotImage { + protected $data = NULL; + abstract function getImage(); + abstract function getImageData(); +} +?> \ No newline at end of file diff --git a/class/BotImageGG.php b/class/BotImageGG.php new file mode 100644 index 0000000..846388e --- /dev/null +++ b/class/BotImageGG.php @@ -0,0 +1,26 @@ +<?php +class BotImageGG extends BotImage { + protected $hash; + + function __construct($hash) { + $this->hash = $hash; + } + + function getHash() { + return $this->hash; + } + + function getImage() { + return imagecreatefromstring($this->getImageData()); + } + + function getImageData() { + if($this->data === NULL) { + $push = new BotGGAPI(); + $this->data = $push->getImage($this->hash); + } + + return $this->data; + } +} +?> \ No newline at end of file -- Gitblit v1.9.1