А те, кто орут типа "говнокод", пусть сами пишут, ибо "Хочешь сделать лучше — сделай сам". орет чаще тот, чьего кода никто не видел. На вход принимаются только png файлы. Существует множество конвертеров PNG -> DDS и обратно (встроенные возможности Paint.net, Photoshop). неплохо было бы приложить ссылки на такие конвертеры, ибо те, что я видел имеют ряд недостатков. лично я пользуюсь paint.NET, качал отсюда сайт программы Вообще утилит, которые умеют работать с форматом ддс, слишком мало, потому и выбора особо нет, для себя вижу именно паинт нет, хотя и искал альтернативы, но так и не нашел.
Не вижу смысла в подобном (платном) ПО, для работы с иконками, камим бы функционалом не обладал. Им пользоваться будут раз в год, ну может - два, не более. Не страдайте фигней. По себе: файл с иконками и так распакован, когда базовый билд CPW делаю. Если хочу ввести итем, использую иконфиндер (Алекса) чтоб конкретную иконку заюзать. В файфле Китайцев дофига иконок, которые они внесли но не используют. Если надо добавить - Paint net (для dds) + notepad++ (для текстовика). Всё. Потом через CPW очередное обновление пускаю (для игроков). Теперь несколько проще, имея шаровую версию от автора. И повторюсь, с иконками работаю очень редко. Пишите платный софт для тех задач, которые постоянно в работе. Вот там, функционал и "удобство", реально нужны и постоянно. Такой софт будет ускорять процесс создания обновлений, облегчать работу. я согласен, более того мы с Десмондом это понимаем, потому сразу для шары и планировали эту тулзу. Тут просто Джолан свой платный софт показал, вот и были высказаны мысли вслух )
Не видел ни разу. Ну и отлично, теперь таких прог две, ну или три, если считать скрипт IISET-PW. P.S. Импорт в pck поддерживается? Было бы интересно посмотреть на реализацию. Просто моя коммерческая, а теперь в ней смысла нет. Нет, в PCK импорта нет, но это не проблема. ну почему же нет смысла, если она у тебя напрямую с ддс форматом работает, то это можно считать преимуществом платной версии, более того для кого то именно твоя программа будет удобнее... Или ты уже думаешь сделать её уже шаровой? --- добавлено: 27 окт 2014 в 05:39 --- Пишите тогда уж с блек-джеком и шлюхами © ))) вот вот, дописать функционал у платной и будет опять повод купить для тех, кто хочет минимум действий делать ) Например не распаковывая PCK архив выделить нужный иконсет, разрезать его в выбранную папку, произвести добавление или изьятие иконок, и... произвести склейку с сохранением прямо в PCK архив. Тогда это будет вообще универсальный инструмент для работы с иконками прямо с PCK файлом )
Вполне полезная программулька для тех, кто хочет по быстрому иконки обработать для игрового клиента. По сути продолжение идеи подобного пхп-скрипта, который делал я, но более быстрая и удобная. Немного допилить софтинку и будет прекрасным инструментом для обработки.
есть определенные предложения по модификации кода? )) Конечно есть, из всех операций, которые тут выполняются самой длительной будет открытие столь объемного png файла (по сравнению с этим разница в функциях перебора массива даже рядом не стоит). Открывать файл надо один раз - а из него копировать нужные области в созданную пустую картинку, которую потом и сохранять. ну даже если и так, все равно как я заметил кучу времени съедает операция сохранения иконки на диске. Когда убираю из цикла функцию копирования иконки на диск, то тогда цикл в разы быстрее выводит массив. --- добавлено: 26 окт 2014 в 11:28 --- что насчет совета, то я учел и исключил из цикла операцию по созданию подложки изображения и его параметров. Как итог скорость выросла, но не на столько, чтоб была равной скорости обработки массива без функции копирования иконок. Ну я думаю, это уже не решить ) --- добавлено: 26 окт 2014 в 11:31 --- что насчет совета, то я учел и исключил из цикла операцию по созданию подложки изображения и его параметров. Как итог скорость выросла, но не на столько, чтоб была он как раз используется в первом посте, а во втором в версии с имайджик уже используется фор А теперь смотри разницу. Вот тебе for: [IMG] [IMG] --- добавлено: 26 окт 2014 в 06:17 --- А вот foreach: [IMG] [IMG] --- добавлено: 26 окт 2014 в 06:18 --- Разницу в производительности видишь? :) --- добавлено: 26 окт 2014 в 06:32 --- P. S. Многие стандартные функции для работы с массивами лучше вообще не использовать, а писать их аналоги, используя foreach для перебора (только не забывайте сбрасывать потом внутренний указатель). Вот тому пример: [IMG] [IMG] --- добавлено: 26 окт 2014 в 06:35 --- Как видим - стандартная функция для обхода массива работает в 34 раза медленнее, чем ее аналог на foreach. спасибо, учел критику твою и алекса, скрипт поправил. Как итог скорость обработки выросла в несколько раз. Чуть позже выложу апдейт версии скрипта. --- добавлено: 26 окт 2014 в 11:39 --- Ну и как заключение, GD работает намного быстрее, чем имайджмагик. --- добавлено: 26 окт 2014 в 11:50 --- Первый пост обновлен, добавлена новая версия скрипта.
есть определенные предложения по модификации кода? )) Для начала - заменить for на foreach :) он как раз используется в первом посте, а во втором в версии с имайджик уже используется фор
[IMG] Я правильно понимаю, на каждую мелкую картину заново читается весь полный пак картинок?[IMG] Я правильно понимаю, на каждую мелкую картину заново читается весь полный пак картинок? Еще и размер массива каждый раз заново пересчитывается) есть определенные предложения по модификации кода? ))
Для тех, кому интересен ещё вариант резалки, тоже выполнен на пхп, но использует уже для обработки изображений иконок технологию imagemagick(которую следует установить, если не будет работать скрипт). За доработку и консультации спасибо vieraw.
увы, не работает вообще, даже первую иконку не обработал. Просто нет слов. Включи ты уже вывод ошибок и посмотри на что ругается. http://img.quissa.ru/2014-10-25-15-28-00.jpg Я бы тебе не кинул не проверив на работоспособность. увы, директива не работает error_reporting(E_ALL); --- добавлено: 25 окт 2014 в 16:38 --- заработал, но при запуске в консоли сервера --- добавлено: 25 окт 2014 в 16:47 --- ладно, для консоли собственно и задумывалось... но теория моя не подтвердилась, увы и на имайджмагик скрипт разрезки тоже работает не так быстро как хотелось бы... --- добавлено: 25 окт 2014 в 16:48 --- благодарю за помощь =)
увы, не работает вообще, даже первую иконку не обработал.
Шатаю gs :O
Кинь код файлом и png с txt тоже. дело в том, что файл с иконками весит около 8 мб и к посту не смогу его приложить (полетел тапок в сторону администрации форума =)) )) Но сам скрипт резалки можно скачать тут: http://mmorpg-devs.ru/threads/pw-iiset-Инструмент-для-обработки-иконок-игрового-клиента.17223/ скрипт резалки в папке iis там он у меня выполнен по GD методу, но ты легко сможешь изучить скрины с кодом что я выше давал и привести код к такому же виду с использованием имайджмагик. Файл с иконками и его тектстовик можно взять из клиента пв (распаковав соответствующий архив клиента) Ну ты молодец. 1)У меня нет клиента. 2)Я прекрасно знаю как режутся эти иконки и нет желания еще что-то писать. P.S. Какой путь до файла указываешь? У меня с относительным не работает он. файл с иконками и его текстовик в той же папке что и скрипт обработки. $fname = "iconlist_ivtrm"; $ficons="{$fname}.png"; $gtxt = file("{$fname}.txt"); $image = new Imagick($ficons); $s = 1; $listen = array_slice($gtxt, 4); for($i=0; $i<count($listen); $i++) { $str= substr($listen[$i], 0 , strrpos($listen[$i], ".")); ++$ii; ++$si; if($si > $gtxt[3]) {$s++; $si = 1;} $str_to = mb_convert_encoding($str, 'utf-8', 'gb2312'); $y = $s*$gtxt[0]-$gtxt[0]; $x = $si*$gtxt[1]-$gtxt[1]; $image->cropImage($gtxt[0],$gtxt[1],$y,$x); $image->writeImage("result/{$str_to}.png"); echo"{$ii}. {$str_to}.png<br>"; } ?> Вот собственно код над которым я завис )) Правда в этом варианте я цикл теперь использую FOR, что увы не повлияло на результат.
для меня не столько принципиально заставить этот код работа А что ты хотел? Выведи все ошибки и увидишь ошибку: Can not process empty Imagick object. И это логично ты же удалил объект Imagick в 20 строке. Ты насчет этого? $image->destroy(); Без него то же самое, обрыв цикла на первом объекте массива... Кинь код файлом и png с txt тоже. дело в том, что файл с иконками весит около 8 мб и к посту не смогу его приложить (полетел тапок в сторону администрации форума =)) )) Но сам скрипт резалки можно скачать тут: http://mmorpg-devs.ru/threads/pw-iiset-Инструмент-для-обработки-иконок-игрового-клиента.17223/ скрипт резалки в папке iis там он у меня выполнен по GD методу, но ты легко сможешь изучить скрины с кодом что я выше давал и привести код к такому же виду с использованием имайджмагик. Файл с иконками и его тектстовик можно взять из клиента пв (распаковав соответствующий архив клиента)
для меня не столько принципиально заставить этот код работа Хорошо, вот два варианта кода, отличаются лишь тем что в одном изображениями манипулирует GD а во втором имайджмагик. [ATTACH] [ATTACH] --- добавлено: 25 окт 2014 в 13:04 --- для меня не столько принципиально заставить этот код работать с имаджмагик, столько хотелось бы понять, почему он отрубает процесс цикличности при обработке массива. А что ты хотел? Выведи все ошибки и увидишь ошибку: Can not process empty Imagick object. И это логично ты же удалил объект Imagick в 20 строке. Ты насчет этого? $image->destroy(); Без него то же самое, обрыв цикла на первом объекте массива...
Довольно часто требуется добавить или удалить часть иконок из клиента. Вручную это делать и долго и неудобно, эту проблему и решит данный инструмент, выполненный в виде скрипта на PHP, предназначенного для выполнения в консоли сервера. [ATTACH] Процесс разрезки иконок клиента(не пугайтесь, что в консоли названия выглядят криво, просто сервер не настроен для отображения азиатских шрифтов) [ATTACH] Результат разрезки, как видно все названия иконок на своих местах. [ATTACH] Работа склейщика иконок... [ATTACH] И его результат. Файл РЕАДМИ с небольшой помощью приложен к скриптам. ЗЫ: все же удалось прикрепить к посту архивчик со скриптами, но пришлось удалить демо-файлы с иконками, надеюсь сами разберетесь что к чему там. Будут вопросы, меня легко найти на моем сайте, но сюда по мере свободного времени тоже буду заглядывать. Актуальная версия 1.1: Немного исправлен скрипт резалки иконок, теперь он быстрее работает. (спасибо за конструктивную критику коллегам =) ) Так же есть данный инструмент, но уже в виде софта. В чем удобство? Само по себе в виде виндовс-софта уже удобное решение, ну и плюс она работает намного быстрее чем пхп версия. Отдельное спасибо Desmond Hume, за то, что он переписал под софт обработчик иконок. Пхп же версия больше рассчитана на любителей встраивать в веб-сервер(в ЛК) некоторые функции, ну и для энтузиастов, которые захотят поглядеть поближе код и доработать.
массив рабочий и имейджик рабочий, он ведь вырезает первую иконку. Мало что он выдает одну картинку, я говорю, попробуйте имитировать действия. Ну я думаю так, если человек имеет большой опыт, то он по идее уже знает о данном моменте и особенностях методов в GD и Imagemagick. Мои же попытки найти в гугле оказались напрасными, подобного метода использования имайджмагик никто не обсуждал (чтоб на основе массива текстового файла в цикле можно было делать операции по обрезки) Гениально конечно, и предыдущие данные я получу из названий переменных, верно? Хорошо, вот два варианта кода, отличаются лишь тем что в одном изображениями манипулирует GD а во втором имайджмагик. [ATTACH] [ATTACH] --- добавлено: 25 окт 2014 в 13:04 --- для меня не столько принципиально заставить этот код работать с имаджмагик, столько хотелось бы понять, почему он отрубает процесс цикличности при обработке массива.
Topic>Смотрите на цельность массива (если массив всё-же рабочий, то пробуйте вручную вырезать картинки (что бы узнать, работает ли сам имейджмейджик)) массив рабочий и имейджик рабочий, он ведь вырезает первую иконку. Лучше прикладывать код, а не отдельные куски (а идеально было бы ДО и ПОСЛЕ), вместо того, что бы клепать картинки как БЫЛО и как ЕСТЬ. Ну я думаю так, если человек имеет большой опыт, то он по идее уже знает о данном моменте и особенностях методов в GD и Imagemagick. Мои же попытки найти в гугле оказались напрасными, подобного метода использования имайджмагик никто не обсуждал (чтоб на основе массива текстового файла в цикле можно было делать операции по обрезки)
Не удержался... [IMG] Тоже не удержался и нажал кнопку жалоба на пост. Может я бы и закрыл глаза на этот пост, но если бы его делал человек не из группы "программист". Но такой как вы позор для мморга. Суть вопроса не в том, чтоб понять что одна технология хуже другой, а совсем в другом, почему функции GD не влияют на процесс прохода массива через цикл, тогда как функции imagemagick влияют.
Попытаюсь объяснить буквально на пальцах, не прибегая к основному фрагменту кода. Есть скрипт, который читает в массив текстовый файл с записями иконок (тот что из клиента пв) и на основе этого должен разрезать файл с иконками на отдельные иконки, т.е. резалка. С использованием GD скрипт отлично выводит весть текстовый файл в массив, прогоняет по циклу и в итоге получаю отдельные иконки. В общем, решил заменить GD на imagemagick и... теперь скрипт срабатывает, но режет только первую иконку в массиве и все... Т.е. как только в цикле выполняется строчка: $image->cropImage($gtxt[0],$gtxt[1],$y,$x); Работа цикла прерывается, обрезается лишь первая иконка. В чем дело? Ведь с использованием GD массив через цикл весь проходит, а вот при imagemagick цикл обрабатывает лишь первый элемент массив и отрубается. Почему использование imagemagick стопорит цикл? Кстати в качестве цикла использую этот метод: foreach($listen as $index => $val) Ну и скриншоты с резкльтатами: GD - как видно массив нормально проходит через цикл [ATTACH] ImageMagick - как только первый объект массива обработан, цикл прерывается... [ATTACH] Довольное странно...
Кому не сложный? Если только тебе. Ибо ты структуру полей знаешь. Я, например, чайник (в программировании) и структура неизвестна. Коснись впервые, твоего редактора, вообще не понятно... какие поля и за что отвечают, что и с чем едят вообще. Несколько полей - можно догадаться, остальное - в тумане (хрен поймешь). Не обижайся, но так и есть. Это взгляд простого пользователя. Потому пока лучшим из шары и остается редактор НПС от Джолана, никто лучше для шары и не написал и боюсь не напишет никогда...Что касается сабжа, то это больше полезнее самому автору и прочим начинающим разработчикам, кто пытается понять структуру этого редактора.
Имена участников (разделяйте запятой).