[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.11114 Reply
Конструктивные комментарии от доброанонов приветствуются :3
http://paste.pocoo.org/show/408127/

Суть скрипта: ресайз обоев до нужного размера (пока не придумал, каким образом лучше передавать ему размеры дисплея, поэтому 1680х1050), добавление бордюра по бокам и сверху/снизу, если не хватает до нужного, crop (ибо бордюр добавляет только кратное количество строк и столбцов). Если это png/gif, то бордюры прозрачненькие (ня!), если нет — белые. (rgba(255, 255, 255, 0.0))
P.S. Мой самый первый скрипт на Perl

Алсо, он ищет все файлы с маской ., поэтому лучше сначала скопировать в отдельную папку картинки и там запускать его.
>> No.11115 Reply
>>11114
А если окажется файл уже с разрешением 1680x1050, но без бордюрчиков?
>> No.11116 Reply
>>11115
ну, он конечно создаст новый файл из старого (получится просто копирование), но никак не изменит его.
А вот пример реальный:
до: http://i.imgur.com/7yuOK.jpg
после: http://i.imgur.com/7GEr9.jpg
>> No.11117 Reply
>>11116
> width =(1680 - $image->Get('columns') ) / 2;
> $width =((1680+1) - $image->Get('columns') ) / 2; #madskillz @ (1680+1) lol
ГОВНОКОД
>> No.11119 Reply
>>11114
Код нечитаемое добро. Осиль уже отсупы. Вот пример того, как мог бы выглядеть твой скрипт: http://pastebin.com/8Z8LtkPE
> каким образом лучше передавать ему размеры дисплея
http://perl.find-info.ru/perl/014/command-line.htm
>> No.11127 Reply
>>11114
Но зачем ты это написал на перле? Для этого хватит и баша. Перл совсем для другого нужен.
> *.* Хотя, с башем у тебя похоже еще хуже.
>> No.11128 Reply
>>11119
while(<@ARGV>){
  print
}
>> No.11131 Reply
Большое спасибо за конструктивные комментарии и советы!
Переписал большую часть кода, добавил аргументы (для размеров и цвета бордюров) и возможность задания маски, так же появился хелп и номер версии -- 0.0.2!
Алсо, теперь обоины, которые уже имеют требуемый размер, просто игнорируются, новых файлов не создаётся (надо подумать, однако, как их отделить от тех, которые нужно редактировать).
В списке требуемых вещей нужно срочно добавить проверку файла на его принадлежность к изображению, иначе создаётся новый файл и в него пишется куча информации, при этом процесс зацикливается и таким образом может сожрать весь винт.

http://pastebin.com/7RNwPCew

>>11127
> . Хотя, с башем у тебя похоже еще хуже.
На самом деле скрипт предназначен для картинок, при этом обычно они имеют расширения (jpg, png и т.д.), поэтому я решил не заморачиваться на первый раз. Хотя в никсах обычно не требуется указания расширения для файла, ибо в дескрипторах всё указано, поэтому вполне возможен такой вариант, что у картинок нет расширения.
> Но зачем на перле?
Баша бы хватило, но мне было интересно, да и в добавок я увидел API от ImageMagick'а для Perl. Ни bash, ни Perl я не знаю, поэтому мне было безразлично каким способом решить задачу. Согласитесь, что знание Perl'а никоим образом не помешает в дальнейшем.

>>11117
Да, здесь я кое-где исправил, но все равно получается какое-то добро. Было бы очень интересно увидеть годный вариант от вас :3

c: талант настраивал бумаги выговорил кагбе намекает на суть происходящего
>> No.11138 Reply
File: 93cc499984991b33a84f553b14a72a9e.jpg
Jpg, 387.93 KB, 1000×1000 - Click the image to expand
edit Find source with google Find source with iqdb
93cc499984991b33a84f553b14a72a9e.jpg
Пиздец.
convert * -resize 1680x1050 -size 1680x1050 xc:black +swap -gravity center -composite out_%d.jpg
>> No.11139 Reply
>>11138
Тихо, а то он узнает.

>>11131
> для картинок, при этом обычно они имеют расширения (jpg, png и т.д.)
> .*
А чем это отличается от *, кроме того, что в имени файла должна быть точка, оно все равно грепает почти все.
>> No.11154 Reply
>>11114
Почему размер 1680x1050?
>> No.11162 Reply
>>11154
У меня ровно такой монитор, сейчас уже можно указывать, какой размер требуется.
>>11139
в папке много файлов без точки, при этом они — не картинки.
>>11138
Собственно, я об этом подозревал, но найти готовое не смог, поэтому решил "пойти в универмаг через центр города", зато как лихо (появилась мотивация изучить целый язык)!

Как допилю следующую версию, сброшу сюда.
Пока что как-то так: http://paste.pocoo.org/show/409004/
>> No.11361 Reply
File: Konachan-24.jpg
Jpg, 518.90 KB, 1680×1050 - Click the image to expand
edit Find source with google Find source with iqdb
Konachan-24.jpg
http://paste.pocoo.org/show/420112/

Добавлено много всего, логов не вёл, поэтому фичи:

1. Можно добавить бордюры с диффузией (convert -spare-color Shepard "x,y color x,y color ...");
2. Корректно обрабатывает файлы в текущей директории (однако если это всё-таки что-то наподобие .txt, то будьте осторожны — он распознаёт его тоже как изображение (просто набор точек и цвет в них), поэтому будет очень долго писать в файл)
3. Можно выбирать цвет бордюра по вкусу (если не нравится градиентно-диффузная заливка, как в п.1), размер дисплея.

Код перепилен полностью, добавлены всякие плюшки вроде кодов ошибок и количество занятого времени, хотя конечно, его еще перепиливать и перепиливать нужно, ибо быдло-привычки со времён "погромирования" на Си остались. Да и просто нас никто не учил хорошим стилям программирования (наверное, нужно почитать Кнута или кого-нибудь еще в этом роде?).

Примерный результат в пикрелейтеде.


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]