TLENS » 2009.04.05 02:48

Есть файл в котором 100 ячеек в каждой ячейке есть цыфры от 1 до 4.
Также есть 4 картинки аналогичны цыфрам 1.gif, 2.gif, 3.gif, 4.gif.
Надо записать одну картинку 10х10 картинок с файла. И записать в дидекторию.
Дайте хоть пример как я уже сам.

Gemorroj » 2009.04.05 08:42

пример с php.net

Код:

1
span style="color: #0000BB"><?php// Create image$im = imagecreate(10, 10);// White background and blue text$bg = imagecolorallocate($im, 255, 255, 255);$textcolor = imagecolorallocate($im, 0, 0, 255);// Write the string at the top leftimagestring($im, 5, 0, 0, 1, $textcolor);imagepng($im, 'file.png');imagedestroy($im);?>
TLENS » 2009.04.05 12:58

Напишы пожалуста подробней ниче не понял.

Gemorroj » 2009.04.05 13:53

мне весь скрипт написать?

TLENS » 2009.04.05 16:33

Почему ввесь начало могу и я

Код:

1
lt;? $file=file_get_contents("files.php");$file=explode("|",$file);for ($i=1; $i<101; $i++){if(empty($file[$i])){$img[$i]=('1.gif');}else{$img[$i]=("$file[$i].gif");}echo('<img src="img/'.$img[$i].'" alt="'.$i.'" />');} ?>

вот создал 100 картинок с файла их надо в один 10на10 етих картинок.
Я просто еще не встречался графикой и низнаю што где за функции. Думал розберусь.

Gemorroj » 2009.04.05 16:39

плз, соблюдай разметку кода.
после знака { должен быть перенос строки.
перед знаком } должен быть перенос строки.
Добавлено спустя   4 минуты  41 секунду:
я не совсем понимаю вопрос к сожелению.

TLENS » 2009.04.05 16:56

Код:

1
span style="color: #0000BB"><?php$file = file_get_contents('files.php');$file = explode('|',$file);for ($i=1;  $i<101;  $i++){if(empty($file[$i])){$img[$i] =('1.gif');}else{$img[$i]=($file[$i].'.gif');}echo '<img src="img/'.$img[$i].'" alt="'.$i.'" />';}?>
Gemorroj » 2009.04.05 17:00

ну код этот понятен, но я не понимаю что вообще нужно сделать.

TLENS » 2009.04.05 17:45

Я пишу игру морской бой.
Вначале думал штоб поставить перенос возле 10 20...
Просто кто с мобильного будет играть то они не будут видить поле так как могут не влесть 10 картинок.
Вот пример што должно получится.

Gemorroj » 2009.04.05 17:52

ммм... возможно лучше будет сделать это с помощью html разметки, а не склеивать эти 4 картинки, или рисовать 1 полную... во всяком случае задача довольно не тривиальная.

TLENS » 2009.04.05 18:34

Я уже думал.
М на операх  3.1 и ниже не рабоотает разметка какраз на таких и сидит ввесь народ.
Даже низнаю думал просто сделать по 5х5
Дак ето уж черезчур маленькие с компа и не увидиш.

TLENS » 2009.04.05 18:52

Может легче будет писать фон вместо картинок?

Gemorroj » 2009.04.05 19:01

ну да, если что-то можно сделать без картинок, то следует делать именно без картинок.

TLENS » 2009.04.05 21:25

Нимного раздуплил графику

Код:

1
span style="color: #0000BB"><?php$img = imageCreateFromGIF('new.gif');//берем картинку$color = imagecolorallocate($img, 0,0,0);//цвет надписи$r1='2';//толщина$r2='2';//отступить по горизонтале$r3='3';//отступить повертикале$r4='privet';//надпись ImageString($img, $r1, $r2, $r3, $r4, $color);Header("Content-type: image/gif");ImageGIF($img);ImageDestroy($img);?>

вот такое узнал только толщина больше 5 не изменяется почемуто.
Вопрос как можна сделать штоб вместо privet ставить картинку?

TLENS » 2009.04.06 04:36

Теперь раздуплил полностю

Код:

1
span style="color: #0000BB"><?phpheader("Content-type: image/gif");$img=imageCreateFromGIF('count.gif');$black=imagecolorallocate($img,255,255,255);$width='3';$hight='5';$ws=round($width+1);$hs=round($hight+1);$wz=round($width*2);$hz=round($hight*2);$w=("$wz$ws");$h=("$hz$hs");$w2=round($w+19);$h2=round($h+19);for ($i=$w; $i<=$w2; $i++){for ($a=$h; $a<=$h2; $a++){imagesetpixel($img, $i, $a, $black);}}imagegif($img);?>

наклал на ету картинку теперь уже просто запущу в масив и готово
еще и корабли будут по 20х20.
С 6 вечера сидел тестировал надале буду уже знать как работать с картинками.

Код:

1
Сдесь работает нармальна как хочу так и ставляю.

ошыбка в самом берхнем масиве.

TLENS » 2009.04.06 06:57

Код:

1
span style="color: #0000BB"><?phpheader("Content-type: image/gif");for ($j=1; $j<=100; $j++){$poleboy[$j]='1';}$img=imageCreateFromGIF('count.gif');$red=imagecolorallocate($img,255,0,0);$kor=imagecolorallocate($img,109,36,0);$fonts=imagecolorallocate($img,0,0,200);for ($u=1; $u<=100; $u++)if(isset($poleboy[$u])){if($u<=10 && 1<=$u){$width='$u';$hight='1';}if($u<=20 && 11<=$u){$width=round($u-10);$hight='2';}if($u<=30 && 21<=$u){$width=round($u-20);$hight='2';}if($u<=40 && 31<=$u){$width=round($u-30);$hight='3';}if($u<=50 && 41<=$u){$width=round($u-40);$hight='4';}if($u<=60 && 51<=$u){$width=round($u-50);$hight='5';}if($u<=70 && 61<=$u){$width=round($u-60);$hight='6';}if($u<=80 && 71<=$u){$width=round($u-70);$hight='7';}if($u<=90 && 81<=$u){$width=round($u-80);$hight='8';}if($u<=100 && 91<=$u){$width=round($u-90);$hight='9';}if($poleboy[$u]=="1"){$color=$red;}if($poleboy[$u]=="0"){$color=$kor;}$ws=round($width+1);$hs=round($hight+1);$wz=round($width*2);$hz=round($hight*2);$w=("$wz$ws");$h=("$hz$hs");$w2=round($w+19);$h2=round($h+19);for ($i=$w; $i<=$w2; $i++){for ($a=$h; $a<=$h2; $a++){imagesetpixel($img, $i, $a, $color);}}}imagegif($img);imageDestroy($img);?>

почему так получаетсю я ночь просидел ниче не найду мож кто увидит недоработку.
Добавлено спустя   6 минут  3 секунды:
А должно закрасить все красным и не должен трогать 1

AND » 2009.04.06 14:46

Код:

1
span style="color: #0000BB"><?phpheader("Content-type: image/gif");for($j=1; $j<=100; $j++) { $poleboy[$j] = '1';}$img = imageCreateFromGIF('count.gif');$red = imagecolorallocate($img,255,0,0);$kor = imagecolorallocate($img,109,36,0);$fonts = imagecolorallocate($img,0,0,200);for($u=1; $u<=100; $u++) { if(isset($poleboy[$u])) { if($u<=10 && $u>=1) { $width = $u; $hight = '1'; } elseif($u<=20 && $u>=11) { $width = round($u-10); $hight = '2'; } elseif($u<=30 && $u>=21) { $width = round($u-20); $hight = '3'; } elseif($u<=40 && $u>=31) { $width = round($u-30); $hight = '4'; } elseif($u<=50 && $u>=41) { $width = round($u-40); $hight = '5'; } elseif($u<=60 && $u>=51) { $width = round($u-50); $hight = '6'; } elseif($u<=70 && $u>=61) { $width = round($u-60); $hight = '7'; } elseif($u<=80 && $u>=71) { $width = round($u-70); $hight = '8'; } elseif($u<=90 && $u>=81) { $width = round($u-80); $hight = '9'; } elseif($u<=100 && $u>=91) { $width = round($u-90); $hight = '10'; } if($poleboy[$u] == '1') { $color = $red; } elseif($poleboy[$u] == '0') { $color = $kor; } $ws = round($width-1); $hs = round($hight-1); $wz = round($width*2); $hz = round($hight*2); $w = $wz.$ws+2; $h = $hz.$hs+2; $w2 = round($w+19); $h2 = round($h+19); for ($i=$w; $i<=$w2; $i++) { for ($a=$h; $a<=$h2; $a++) { imagesetpixel($img, $i, $a, $color); } } }}imagegif($img);imageDestroy($img);?>

Попробуй так, вроде работает

TLENS » 2009.04.06 15:45

По одиночке не работает.
Добавлено спустя   7 минут  16 секунд:
А-а-а-а-а-а-а-а-а!!!
Если оно выхтдит 9
Оно плюсует 1
И 9 умножыть на 18 подставляем и олучается 1810 а не 190 также само с 10.
И ещё $шырина='$u';
Шо ет такое шас буду тестить.

TLENS » 2009.04.06 16:10

Всё наконечто спасибо спасибо всем за помощь.

Код:

1
span style="color: #0000BB"><?phpheader("Content-type: image/gif");for ($j=1; $j<=100; $j++){$poleboy[$j]='0';}$img=imageCreateFromGIF('count.gif');$red=imagecolorallocate($img,255,0,0);$kor=imagecolorallocate($img,109,36,0);$fonts=imagecolorallocate($img,0,0,200);for ($u=1; $u<=110; $u++){if(isset($poleboy[$u])){if($u<=10 && 1<=$u){$width=$u;$hight='1';}if($u<=20 && 11<=$u){$width=round($u-10);$hight='2';}if($u<=30 && 21<=$u){$width=round($u-20);$hight='3';}if($u<=40 && 31<=$u){$width=round($u-30);$hight='4';}if($u<=50 && 41<=$u){$width=round($u-40);$hight='5';}if($u<=60 && 51<=$u){$width=round($u-50);$hight='6';}if($u<=70 && 61<=$u){$width=round($u-60);$hight='7';}if($u<=80 && 71<=$u){$width=round($u-70);$hight='8';}if($u<=90 && 81<=$u){$width=round($u-80);$hight='9';}if($u<=100 && 91<=$u){$width=round($u-90);$hight='10';}if($poleboy[$u]=="1"){$color=$red;}if($poleboy[$u]=="0"){$color=$kor;}$ws=round($width+1);$hs=round($hight+1);$wz=round($width*2);$hz=round($hight*2);if($width=="9"){$w='190';}else{if($width=="10"){$w='211';}else{$w=("$wz$ws");}}if($hight=="9"){$h='190';}else{if($hight=="10"){$h='211';}else{$h=("$hz$hs");}}$w2=round($w+19);$h2=round($h+19);for ($i=$w; $i<=$w2; $i++){for ($a=$h; $a<=$h2; $a++){imagesetpixel($img, $i, $a, $color);}}}}imagegif($img);imageDestroy($img);?>

Анд у тибя всё нармальна только не хватает то чего сдесь спасибо што помог я уже увидел в твоем коде.

TLENS » 2009.04.06 16:33

Мож кто знает как сделать штоб ето проинклудить в скрипт и в нужном месте показать.