Instant Messaging Systems
17 January 2012

Картинки в чате skype

image

Оказывается, в чате скайпа работают некоторые HTML-теги, в том числе и <font color="">
Благодаря этому возможно создавать несложные картинки в тексте сообщений.

Список поддерживаемых в скайпе тегов www.wikireality.ru/wiki/HTML_в_Скайпе
Для того чтобы оправить HTML-код в чате нужно зажать CTRL+SHIFT и кликнуть на кнопку отправки сообщения.

Код картинки pastebin.com/raw.php?i=z4EspzjC

Ниже показан пример генерации HTML-кода из изображения на PHP.



$imgw = imagesx($img);
$imgh = imagesy($img);
$ratio = $imgw/$imgh;
$newh = floor(sqrt(800 / $ratio));
$neww = floor($ratio * $newh);

$newimg = imagecreatetruecolor($neww, $newh);
imagecopyresampled($newimg, $img, 0, 0, 0, 0, $neww, $newh, $imgw, $imgh);
imagedestroy($img);
$out = '<font size="1"><u>';
for($j = 0; $j < $newh; $j++) {
	for ($i = 0; $i < $neww; $i++) {
		$color = imagecolorat($newimg, $i, $j);
		$out .= '<font color="#'.strtoupper(dechex($color)).'">███</font>';
	}
	$out .= "\n";
}
$out .= '</u></font>';
echo $out;


Код достаточно примитивный, потому как обрабатывается каждый пиксель, даже если подряд идут несколько пикселей одного цвета. Если оптимизировать код, таким образом, чтобы генерировать более компактный HTML, возможно создавать картинки более высокого разрешения. Всё упирается в максимальный размер сообщения в skype — 29,999 символов (символ █ считается за три обычных).

Внимание, при большом количестве таких картинок skype начинает сильно тормозить, спасает только очистка истории. Поэтому лучше удалять сообщение с картинкой.

image

Работает только в Windows версии.

Попробовать можно тут img4skype.com

P.S. Будем рады если кто-то сможет оптимизировать код для генерации картинок бОльшего разрешения.

UPD: sergey_dobrodey Написал версию на .NET с возможностью создавать картинки 40х40 пикселей но с инвертированием цветов github.com/sergeydobrodey/SkypeImage

UPD: aruz Написал реализацию на .NET генерирующую оптимизированный HTML-код с возможностью регулировать конечный размер и возможностью уменьшение количества цветов github.com/aruz/img4skype
Это позволило создавать огромные картинки (первая сгенерирована моим алгоритмом) image

UPD: В новой версии скайпа 5.8.0.154 больше нет возможности отправлять HTML. Но при этом код отправленный с версии младше, отображается в новой версии нормально. Для отправки кода нужна версия ≤5.7

+162
75.9k 496
Comments 147