X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> разбитие картинки на блоке
cyber_ua
cyber_ua
Topic Starter сообщение 20.8.2012, 21:15; Ответить: cyber_ua
Сообщение #1


кому не тяжело помогите написать скрипт разбивающий картинку на блоки 256x 256. в пхп хреново шарю=(
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 21.8.2012, 7:00; Ответить: Witu
Сообщение #2


ну тут как бы все просто

определяем высоту (H) и ширину(W) исходной картинки
делим H на 256 получаем fH и так же делим W на 256 и получаем fW
приводим к целому числу (мы получили кол-во картинок на которые нужно разбить по высоте и ширине)

дальше идет цикл for ($i = 1; $i <= fW; $i++)
и в нем еще несколько циклов (думай сам зачем)

функцией imagecolorat определяем текущий цвет пикселя на большой картинке
функцией imagecolorset устанавливаем этот же пиксель на картинке 256 * 256

PS логика думаю понятна но большая часть функций опущена
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cyber_ua
cyber_ua
Topic Starter сообщение 21.8.2012, 11:13; Ответить: cyber_ua
Сообщение #3


проблема в том что алгоритм я и сам понял, у меня проблемы с кодом=(
не хрена не получается
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cyber_ua
cyber_ua
Topic Starter сообщение 21.8.2012, 11:35; Ответить: cyber_ua
Сообщение #4


я не пойму как функцией резать картинки и как и потом сохранить картинку что бы каждый раз ее не разрезать?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 21.8.2012, 12:37; Ответить: Witu
Сообщение #5


ну так покажите что есть
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cyber_ua
cyber_ua
Topic Starter сообщение 21.8.2012, 22:34; Ответить: cyber_ua
Сообщение #6


(HTMLandPHP @ 21.8.2012, 10:00) *
ну тут как бы все просто

определяем высоту (H) и ширину(W) исходной картинки
делим H на 256 получаем fH и так же делим W на 256 и получаем fW
приводим к целому числу (мы получили кол-во картинок на которые нужно разбить по высоте и ширине)

дальше идет цикл for ($i = 1; $i <= fW; $i++)
и в нем еще несколько циклов (думай сам зачем)

функцией imagecolorat определяем текущий цвет пикселя на большой картинке
функцией imagecolorset устанавливаем этот же пиксель на картинке 256 * 256

PS логика думаю понятна но большая часть функций опущена

стоп, чет я не совсем понял, зачем брать цвет пикселя и устанавливать его на картинке?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cyber_ua
cyber_ua
Topic Starter сообщение 21.8.2012, 22:35; Ответить: cyber_ua
Сообщение #7


(HTMLandPHP @ 21.8.2012, 15:37) *
ну так покажите что есть


нет нечего уже пытался написать но получался один бред щас сел заново переписывать
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 22.8.2012, 7:07; Ответить: Witu
Сообщение #8


это первый алгоритм который пришел мне в голову
но потом я понял что проще через imagecopyresampled
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
r3ntg3n
r3ntg3n
сообщение 22.8.2012, 13:56; Ответить: r3ntg3n
Сообщение #9


Обработку прозрачности для PNG не включал, думаю, сами доставите.
[PHP]$filename = 'cover.jpg';
$imgArgs = getimagesize($filename);

switch ($imgArgs['mime'])
{
case 'image/jpeg':
$func = 'imagecreatefromjpeg';
break;
case 'image/png':
$func = 'imagecreatefrompng';
break;
case 'images/gif':
$func = 'imagecreatefromgif';
break;
}
$imgSrc = $func($filename);

$chunkBasename = pathinfo($filename, PATHINFO_FILENAME);
$chunkSize = array(
'x'=>256,
'y'=>256,
);

$chunks = array(
'x'=>ceil($imgArgs[0]/$chunkSize['x']),
'y'=>ceil($imgArgs[1]/$chunkSize['y']),
);

?>

<style>
div.wrapper { width: <?php echo $imgArgs['0']; ?>px; }
div.wrapper div { float: left; }
</style>
<div class="wrapper">

<?php
for($i=0; $i<$chunks['y']; $i++)
{
for($j=0; $j<$chunks['x']; $j++)
{
$chunkFilename = $chunkBasename.'-'.$j.'-'.$i.'.png';
if (!file_exists($chunkFilename))
{
$srcX = $j*$chunkSize['x'];
$srcY = $i*$chunkSize['y'];

$xSize = $srcX+$chunkSize['x'];
$ySize = $srcY+$chunkSize['y'];

$xSize = ($xSize > $imgArgs[0]) ? $chunkSize['x']-($xSize-$imgArgs[0]) : $chunkSize['x'];
$ySize = ($ySize > $imgArgs[1]) ? $chunkSize['y']-($ySize-$imgArgs[1]) : $chunkSize['y'];

$chunkImg = imagecreatetruecolor($xSize,$ySize);

imagecopy($chunkImg, $imgSrc, 0, 0, $srcX, $srcY, $xSize, $ySize);
imagepng($chunkImg, $chunkFilename);
imagedestroy($chunkImg);

}
echo '<div><img src="'.$chunkFilename.'" width="'.$xSize.'px" height="'.$ySize.'px" /></div>';
}
}
imagedestroy($imgSrc);
?>
</div>[/PHP]
На выходе раскладывается вот так:
[IMG]http://img846.imageshack.us/img846/5140/screenshotfrom201208221.png[/IMG]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cyber_ua
cyber_ua
Topic Starter сообщение 22.8.2012, 14:09; Ответить: cyber_ua
Сообщение #10


спасибо, а то в пхп я ноль пока=(
весь день вчера пробывал..

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыКто и зачем покупает картинки обезьян по $200 тысяч?
NFT
167 metvekot 27096 6.3.2024, 21:58
автор: Boymaster
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыВыравнивание картинки по центру между текстом
10 NikN 2632 6.1.2021, 23:24
автор: buypushplatform
Открытая тема (нет новых ответов) В блоке РСЯ теперь можно показывать видеорекламу - кто пробовал?
1 rom_4 1550 16.4.2020, 12:53
автор: adamsadriane
Открытая тема (нет новых ответов) Нужно добавить картинки на сайт
И видео
2 Ksardas777 4078 17.11.2018, 10:41
автор: Intuit89
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыНадо поменять картинки кнопки и всё прочее.
Сделать круто, чтобы не стыдно за сайт
0 atavisma 2975 6.4.2017, 19:04
автор: atavisma


 



RSS Текстовая версия Сейчас: 28.3.2024, 19:58
Дизайн