Перейти к публикации
Форум - ComputerCraft
ECS

[OC] "Photoshop" или мощный графический редактор

Рекомендованные сообщения

de717f65a1e9e22ea2ebde65c70b010e.png
 
Хочу поделиться с вами редактором изображений, созданным мной и моим товарищем. Изначально в OpenComputers отсутствует такое понятие, как изображение - поэтому мы решили создать собственный графический формат, а также удобный редактор под него.

Ссылка на загрузку:

pastebin run WYrTnmPx

После загрузки запускайте файл Photoshop.lua.

 

Начало работы:

 

 

При старте программы или по нажатию контекстного меню Файл - Новый вам будет предложено создать новый файл c указанными шириной и высотой.
 
e9c667d619c09469277d9e75311ca7ac.png
 
В левой части редактора располагается панель инструментов, в верхней - меню и тулбар с параметрами кисти. В левом нижнем углу имеются иконки цветов - вы можете выбрать любой цвет в удобной HSB-палитре. Каждое поле в палитре доступно для ввода данных, так что можете спокойно работать с RGB-цветами, если вам угодно.
 
a895cdb856047b4f2101436b7846aac2.png

 

 

 

Инструменты:

 

 

 

У вас имеется несколько инструментов на выбор. С помощью кисти осуществляется основное взаимодействие с изображением. Например, с ее помощью мы можем нарисовать такую вот рожицу:
 
f0c8a34015f3e3d193e5539cea482c70.png
 
Вы также можете изменять размер и прозрачность кисти с помощью правого клика на зоне рисования или же на верхнем тулбаре. Размер варьируется от 1 до 10, а прозрачность от 0 до 255.
 
e475829b4a5a61bc492759f0e8015ca2.png
 
Работу системы прозрачности можно легко понять, рисуя крупной кистью с прозрачностью около 140.
 
e80aa2159d2546e7952d386cc43c0db0.png
 
Инструмент ластик действует точно так же, как и кисть, разве что он удаляет пиксели с экрана. 
 
44b3f475c63985a3e5a85ee4b884a319.png
 
Инструмент заливка позволяет закрашивать большие области изображения с учетом содержимого. Давайте раскрасим нашу рожицу!
 
0dcd0c1bc53ad5577831616b8b2a5160.png
 
Также крайне интересен инструмент Текст - он позволяет вам делать любые надписи на изображении с помощью клавиатуры. Цветом текста будет являться первичный цвет из нижнего левого угла экрана. В данном инструменте также есть поддержка буфера обмена - так что вы можете вставлять некие особые символы или большие участки текста, если вам угодно.
 
a4ed1f11adc825d925903285dd8049f8.png

 

 

 

 

Фильтры:

 

 

В данном редакторе есть несколько фильтров для работы с готовым изображением. Нажимаем на вернее меню Изображение и видим список:
 
06b5be1a20dd791df24eb4d792cc2dc7.png
 
По нажатию на Отразить по горизонтали наше изображение трансформируется в это:
 
3e9fafe47164de59a7179d5685be7f21.png
 
Аналогичным образом работает и Отразить по вертикали. Если вы хотите инвертировать цвета - нажмите соответствующую кнопку и получите результат.
 
9dced41627100d519ddce0b2ee530380.png
 
Ну, и напоследок можно наложить Черно-белый фильтр на нашу рожицу.
 
1a7ccdd2525b2ac8c99487d5cc2c5217.png
 

 

 

Сохранение и загрузка файлов:

 

 

 

При нажатии кнопки Файл - Сохранить как вам будет предложено сохранить файл с указанным именем и методом кодирвания. Рекомендую использовать метод OCIF4 для экономии места на диске, RAW полезен для дебага, он максимально понятен пользователю, но не имеет алгоритмов сжатия информации.
 
765dfb5c9b39cd62cb5969e83ca58a10.png
 
При нажатии кнопки Файл - Открыть вам будет предложено ввести путь к ранее сохраненному файлу в одном из поддерживаемых форматов (.pic или реальный .png)
 
9722a205379e9b230afcd3a1367c043c.png
 

 

 

Сочетания клавиш:

 

  • B - выбрать инструмент Кисть
  • E - выбрать инструмент Ластик
  • G - выбрать инструмент Заливка
  • T - выбрать инструмент Текст
  • D - установить первичный цвет как черный, а вторичный как белый
  • X - поменять цвета местами
  • Стрелки - переместить изображение на экране
  • Пробел - перерисовать изображение из памяти

 

 

 

Отрисовка сохраненных изображений в других программах:

 

 

 

При скачивании самого фотошопа идет загрузка библиотеки image.lua, обеспечивающей загрузку, сохранение и отрисовку картинки на экране. Поэтому вы при желании можете ее подключить и нарисовать сохраненное изображение из любого скрипта. Делается это следующим образом:

--Подключаем библиотеку
local image = require("image")

--Загрузка изображения по указанному пути. Путь к моей картинке - "Sample.pic"
local myPicture = image.load("Sample.pic")

--Отрисовка изображения на позиции x = 2, y = 2
image.draw(2, 2, myPicture)

И тут же на экране отобразится наша картинка!
 
0f39b19dd4d17a60afb7257356095dd8.png

 

Для демонстрации возможностей этой библиотеки проще всего представить скриншот моей "ОС", где каждая иконка и обои рабочего стола - это изображение в формате .pic:

 

157d94d7153e999a44fda627a3e9a708.png

 

 

 

 

Ну, и напоследок не забудем показать всех трудившихся над этим проектом:
 
56c7efb84c906775190246029c24080f.png

Изменено пользователем ECS
  • Like 9

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Такое впечатление возникло, что я смотрю на программу для Windows 10. Похоже Мелкомягкие переборщили с минимализмом.

А вообще выглядит красиво  :), напоминает реальный Photoshop.

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ты великолепен! Смотря на скриншот этой ОС с таким количеством разнообразных иконок, я просто завораживаюсь.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот так всегда, пишешь-пишешь свой фотошоп, вдруг приходит кто-то другой и показывает свой. Уже и дописывать свой не охота. =(

Изменено пользователем LeshaInc

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Вот так всегда, пишешь-пишешь свой фотошоп, вдруг приходит кто-то другой и показывает свой. Уже и дописывать свой не охота. =(

Вот так всегда, кто-нибудь выкладывает прогу, так обязательно найдется кто-нибудь, кто напишет "Украл мою идею", "Я хотел сделать также", "Я уже начал делать,но теперь уже не буду" и блаблабла... Не реализовал - сам виноват, значит нашелся кто-то, кому эта идея пришла раньше или он действительно ее хотел реализовать, а не просто "Это придумал я, никому не трогать"....

 

Бесят такие люди...

 

 

P.S. крутая прога :) 

  • Like 6

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот так всегда, кто-нибудь выкладывает прогу, так обязательно найдется кто-нибудь, кто напишет "Украл мою идею", "Я хотел сделать также", "Я уже начал делать,но теперь уже не буду" и блаблабла... Не реализовал - сам виноват, значит нашелся кто-то, кому эта идея пришла раньше или он действительно ее хотел реализовать, а не просто "Это придумал я, никому не трогать"....

 

Бесят такие люди...

 

 

P.S. крутая прога :)

 

Я реализовал, и оно работало, но выкладывать не буду, ибо нафиг

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Я реализовал, и оно работало

Реализовал, но не выложил  и что теперь? выложил бы, тебя бы хвалили,а ты протупил, следовательно сам виноват... 

 

 

P.S. реализовал и не выложил = никто не видел (кроме тебя) = а реализовал ли ты вообще это?

  • Like 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Реализовал, но не выложил  и что теперь? выложил бы, тебя бы хвалили,а ты протупил, следовательно сам виноват... 

 

 

P.S. реализовал и не выложил = никто не видел (кроме тебя) = а реализовал ли ты вообще это?

Elisegaa докажет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Elisegaa докажет.

Какая разница кто там докажет. Просто допили скрипт свой, а когда посчитаешь, что программа уже готова, то можно смело выкладывать. Ругать точно никто не будет.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот так всегда, кто-нибудь выкладывает прогу, так обязательно найдется кто-нибудь, кто напишет "Украл мою идею", "Я хотел сделать также", "Я уже начал делать,но теперь уже не буду" и блаблабла...

Вот вот, как раз @LeshaInc из таких людей.

Что-то ты создал новое, так он - "я лучше сделаю и все".

 

А , спасибо за демонстрацию фотошопа! Как всегда все сделано на высшем уровне!

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хорошая программка, на ютюбе другая надпись. =D

Изменено пользователем NEO

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сразу возникла мысль, а нельзя ли сделать графический редактор, пиксель в котором не символ, а полусимвол? Таким образом, пиксели будут квадратными, а не вытянутыми по вертикали прямоугольниками.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сразу возникла мысль, а нельзя ли сделать графический редактор, пиксель в котором не символ, а полусимвол? Таким образом, пиксели будут квадратными, а не вытянутыми по вертикали прямоугольниками.

Идея дуба, он так делал, у него есть мини алгоритм для рисования квадратных картинок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Идея дуба, он так делал, у него есть мини алгоритм для рисования квадратных картинок.

Всего-лишь идея, начал делать свой пейнт с инструментами и палитрой, сразу в чат начали сыпать объявлениями о создании СуперМегаФотошопов.

Так как получать точные координаты клика можно только через моник Т3, я это дело бросил, но в редакторе голограмм это реализовали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сразу возникла мысль, а нельзя ли сделать графический редактор, пиксель в котором не символ, а полусимвол? Таким образом, пиксели будут квадратными, а не вытянутыми по вертикали прямоугольниками.

Идея интересная, но все же, если так сделать, то не будет возможности нарисовать любой другой символ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Два формата для картинок...

Изменено пользователем SergOmarov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добавил поддержку реального .png формата изображений. То есть через Файл - Открыть теперь можно открывать реальные пнгшники, залитые каким-то образом на диск компьютера, изменять их, а потом сохранять в любом из доступных форматов.

 

Пруф:

 

09fb608e0137cd28cd470b9a931c034f.png

 

9c07076c64de161c487abf0a99843cc2.png

Изменено пользователем ECS
  • Like 5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

...

КАК?! Вроде в OC можно только квадратиками большими рисовать. Хм...

 

Предупреждение модератора!

Чрезмерное цитирование

Изменено пользователем Fingercomp
Чрезмерное цитирование

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
КАК?! Вроде в OC можно только квадратиками большими рисовать. Хм...

Точнее, прямоугольничками... Просто их МНОГО

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Оставлю это здесь:

https://en.wikipedia.org/wiki/ASCII_art

https://en.wikipedia.org/wiki/ANSI_art

https://en.wikipedia.org/wiki/AAlib

http://ansilove.sourceforge.net/examples.html

http://sixteencolors.net/

 

P.S.

ANSI запилите, велосипедисты. Тонны арта же за пару десятилетий скопилось.

 

 

ascii-ansi-artEmeralds_by_jSepia-680x434

 

 

 

upd (aalib умеет не только картинки):

 

 

Изменено пользователем swg2you
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Полностью переделан формат .pic, в среднем объем файлов на диске сократился в 3 раза. Добавлены 4 метода кодирования: raw, OCIF1, OCIF2, OCIF3, создающие совершенно разную структуру файлов.

 

4f6ee6c2e726761e98e878a407e92256.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Большое обновление:

  • Программа полностью переведена на систему двойного буфера и библиотеку image, скорость отрисовки увеличена в 15 - 20 раз
  • Добавлена поддержка нового метода кодирования изображений, суммарный объем файла при сохранении уменьшен в 1.8 - 6.2 раза в зависимости от количества цветов. Ниже представлены два одинаковых изображения, созданных с новым и старым методами кодирования:

           170e2cbe456a700b44bea88c1f7ecc11.png 8d06e9d694e97d4f0b60f132f7b0bc23.png

  • Добавлены функции обрезки, расширения (изменения размера холста), поворота и отражения изображений:

           99fedf93e8299e4ee3d47cb4a284ddf6.png 5efc423b6062f640d8bfbc9754885d7e.png

  • Добавлены функции работы с цветом: цветовой тон/насыщенность, цветовой баланс, фотофильтр:

           f6b66a6f7725e90e85f30dff9b516960.png 6c3b595868d80e82ef12f822c921b1a2.png 6118e8bcd6c42edd0b004e8378fc177e.png

  • Добавлено центрирование изображения при создании нового файла или открытии существующего:

           f133b20bb50888ee38156727db2bc628.png

Изменено пользователем ECS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×