Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Скрипт на вывод эмблемы клана.
#11
n0nam3 Написал:Выдерните логику отсюда.

Не проходит эту проверку, что странно...
if ($dds!=='DDS ') die("Error: изображение DDS не найдено");

С ДДС мой косяк был. Это исправил, но выдает вот это:
����JFIF��>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ��C    $.' ",#(7),01444'9=82<.342��C  2!!22222222222222222222222222222222222222222222222222�� "�� ���}!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������� ���w!1AQaq"2�B���� #3R�br� $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�������������������������������������������������������������������������� ?�1K�]�=ƣE��8�"&$�WinkbT���@0�R�N�N�D����8U6�9s��X����� h����F���@D'#�T6��m��O��Ԯ�ц�iw4� m#��E�'�<_-�t��i���~�t��Om4oM�����
Ответ
#12
MIF Написал:gd-jpeg v1.0
Попробуй GD второй ветки поставить, может быть поможет.
Ответ
#13
Спасибо большое за код (логику), я его немного доработал и вот что получилось, сборка L2Open:
crest.php
PHP код:
<?php
/*
* Функции
*/

function empty_image()
{
@
header("Content-type: image/gif");
@
header("Cache-Control: max-age=3600");
$img=imagecreatetruecolor(1,1);
imagecolortransparent($img, 0);
imagegif($img);
imagedestroy($img);
exit();
}

function
readInt($file)
{
$b4 = ord(fgetc($file));
$b3 = ord(fgetc($file));
$b2 = ord(fgetc($file));
$b1 = ord(fgetc($file));
return (
$b1<<24)|($b2<<16)|($b3<<8)|$b4;
}

function
readShort($file)
{
$b2 = ord(fgetc($file));
$b1 = ord(fgetc($file));
return (
$b1<<8)|$b2;
}

/*
* Переменные
*/

$id = isset($_GET["id"]) ? $_GET["id"] : 0;
$aid = isset($_GET["aid"]) ? $_GET["aid"] : 0;

if ((
$id == "0") AND ($aid == "0")) empty_image();

include(
"cfg/bd.php"); // Данные для подключения к БД
$msconn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Ошибка соединения");
MYSQL_SELECT_DB($dbname) or die ("БД не найдена");

if (
$aid == "0") {
$query = mysql_query(" SELECT crest FROM clan_data WHERE clan_id=".$id." ");

if (@
mysql_num_rows($query) > 0)
{
$result = @mysql_fetch_assoc($query);
$clan_crest = $result['crest'];
if (
$clan_crest == NULL) empty_image();
}
else
{
empty_image();
}
} else {
$query = mysql_query(" SELECT crest FROM ally_data WHERE ally_id=".$aid." ");

if (@
mysql_num_rows($query) > 0)
{
$result = @mysql_fetch_assoc($query);
$clan_crest = $result['crest'];
if (
$clan_crest == NULL) empty_image();
}
else
{
empty_image();
}
}
mysql_close();
$file = tmpfile();
fwrite($file, $clan_crest);
fseek($file, 0);
$dds = fread($file,4);

if (
$dds!=='DDS ') die("Error: изображение DDS не найдено");

//DDS header
$hdrSize = readInt($file);
$hdrFlags = readInt($file);
$imgHeight = readInt($file)-4;
$imgWidth = readInt($file);
$imgPitch = readShort($file);

//DXT1 header
fseek($file, 84);

$dxt1 = fread($file,4);

if (
$dxt1!=='DXT1') die("Error: не найден формат DX1");

//here we go
fseek($file, 128);

@
header ("Content-type: image/png");
@
header("Cache-Control: max-age=3600");
$img=imagecreatetruecolor($imgWidth,$imgHeight);

for (
$y=-1; $y<$imgHeight/4; $y++)
{
for (
$x=0; $x<$imgWidth/4; $x++)
{
$color0_16 = readShort($file);
$color1_16 = readShort($file);
$r0 = ($color0_16 >> 11) << 3;
$g0 = (($color0_16 >> 5) & 63) << 2;
$b0 = ($color0_16 & 31) << 3;
$r1 = ($color1_16 >> 11) << 3;
$g1 = (($color1_16 >> 5) & 63) << 2;
$b1 = ($color1_16 & 31) << 3;
$color0_32 = imagecolorallocate($img,$r0,$g0,$b0);
$color1_32 = imagecolorallocate($img,$r1,$g1,$b1);
$color01_32 = imagecolorallocate($img,$r0/2+$r1/2,$g0/2+$g1/2,$b0/2+$b1/2);
$black = imagecolorallocate($img,0,0,0);
$data = readInt($file);
for (
$yy=0;$yy<4;$yy++)
{
for (
$xx=0;$xx<4;$xx++)
{
$bb = $data & 3;
$data = $data >> 2;
switch (
$bb)
{
case
0: $c = $color0_32; break;
case
1: $c = $color1_32; break;
case
2: $c = $color01_32; break;
default:
$c = $black; break;
}
imagesetpixel($img,$x*4+$xx,$y*4+$yy,$c);
}
}
}
}

imagepng($img);
fclose($file);
exit;
?>
Запрос на картинку клана:
<img src="crest.php?id=CLANID" />
на картинку альянса:
<img src="crest.php?aid=ALLYID" />

Кому помог - с Вас спасибка!
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Скрипт автоматического приема платежей NotSpecified 5 6,248 03-11-2016, 09:42 PM
Последний пост: Aleksey
  Требуется скрипт на автовыдачу при покупке в Unitpay l2exe 0 1,925 06-30-2015, 04:35 PM
Последний пост: l2exe
  ghtweb 4.x соединение с бд\вывод статистики ccc 0 1,854 03-01-2015, 03:19 PM
Последний пост: ccc
  stress и вывод тем Меркурий 0 1,316 01-31-2015, 04:28 AM
Последний пост: Меркурий
  Помогите поправить скрипт hoske 5 2,383 12-01-2014, 09:35 PM
Последний пост: SkAvenger
  Вывод последних тем на сайт Fusion 22 5,595 10-16-2013, 12:33 PM
Последний пост: Fusion
  L2top скрипт награды за голосование TosyBosy 0 1,765 08-14-2013, 04:44 PM
Последний пост: TosyBosy
  Скрипт Базы Знаний tpaktop23 0 1,559 03-21-2013, 02:24 AM
Последний пост: tpaktop23
  DLE (DLL скрипт) treamz 1 1,709 02-21-2013, 01:38 AM
Последний пост: NotSpecified
  скрипт Vasya 2 1,584 02-14-2013, 09:21 PM
Последний пост: Vasya

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)