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

ocpaint OCPaint - графический редактор для изображений OC

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

Здравствуйте уважаемые жильцы форума и не только! :D 

Буду краток, не так давно пришла идея создания графического редактора для работы с изображениями под ОС, уже есть наработки, https://github.com/Avaja/OCPaint, как всегда хочу подключить луа для удобного написания форматера, тобишь, в скрипт передаются данные изображения, а уже в скрипте они преобразуются в поток байт сохраняемый в файл, таким образом можно будет писать пользовательские скрипты.

 

http://i.imgur.com/c5KtqqU.png

Пока всё выглядит бедненько, но постараюсь наполнить функционалом. :smile9:

 

Уже есть такие фичи.

 - Рисование пикселей.

 - Рисование символов.

 - Смена цвета.

 - Смена инструментов.

 - Ластик.

 - Файл конфигурации.

 - Автоматическое обновление скриптов с гитхаба.

 

Можно скачать!

https://github.com/Avaja/OCPaint/releases/tag/0.1-alpha

 

LuaApi!

http://pastebin.com/RrzgJNrq

Пиксели лежат строками не столбцами.

 

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

https://www.dropbox.com/sh/rpjioshlrdc5i7h/AAB5jkhhqVxOsJZiBbEXFtpKa?dl=0

 

Все баги и фичи слать сюда -> https://github.com/Avaja/OCPaint/issues

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

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


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

Ты напишешь собственную библиотеку для работы с изображениями(в ОС), или они будут использовать формат изображений ecs???

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


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

Ты напишешь собственную библиотеку для работы с изображениями(в ОС), или они будут использовать формат изображений ecs???

Можно будет писать скрипты для разных форматов, ну и вообще планирую добавлять по умолчанию набор скриптов.

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

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


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

Надо развернуть палитру, чтобы цветовое колесо было всегда видно, а внизу запоминались использованные цвета.

А таблицу символов засунуть в основное окно.

 

Потому что свернутая палитра, и отдельная таблица - это способы экономии места.

А у тебя места полно, и это только создаёт лишние  неудобства.

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


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

Надо развернуть палитру, чтобы цветовое колесо было всегда видно, а внизу запоминались использованные цвета.

А таблицу символов засунуть в основное окно.

 

Потому что свернутая палитра, и отдельная таблица - это способы экономии места.

А у тебя места полно, и это только создаёт лишние  неудобства.

xAtxkvJ.png

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

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


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

Exception in Application start method
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NumberFormatException: null
    at java.lang.Integer.parseInt(Integer.java:542)
    at java.lang.Integer.parseInt(Integer.java:615)
    at common.Config.load(Config.java:28)
    at common.Config.<init>(Config.java:23)
    at common.OCPaint.start(OCPaint.java:38)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
    at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139)
    ... 1 more

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

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


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

Сразу два скролла в таблице символов - неудобно.

Оставь только по вертикали, или только по горизонтали.

 

Ну и вообще, мне кажется, можно кнопки поуменьшить. Потому что места много занимают зря. Идеально - это просто таблица символов, с расстоянием между соседними в пару-тройку пикселей.

 

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

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


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

...

Еще раз запусти =). Там пока с конфигурациями бяка.

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


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

да, кнопочки можно поуменьшить, и скрол в таблице 1 желательно) но вот что было бы воще сок - это чтоб можно было включать сетку)

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


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

да, кнопочки можно поуменьшить, и скрол в таблице 1 желательно) но вот что было бы воще сок - это чтоб можно было включать сетку)

+

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


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

Уху! Новые обновления!

https://github.com/Avaja/OCPaint/releases/tag/0.0.2-alpha

P.S

Кто может написать скрипт для конвертации в pic от ECS?

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

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


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

оо) гараздо лучше) там правде где сетка включается немного багует, туда можно флажек поставить) а так гуд) ну и попрежниму не с первого раза включается (возможно из-за старой кофигурации)

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

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


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

оо) гараздо лучше) там правде где сетка включается немного багует, туда можно флажек поставить) а так гуд) ну и попрежниму не с первого раза включается (возможно из-за старой кофигурации)

Стэктрейс тот же?

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


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

 

 

Кто может написать скрипт для конвертации в pic от ECS?

Может быть... ECS?

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


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

Кто может написать скрипт для конвертации в pic от ECS?

Можешь скинуть небольшую API к скриптам, (хотя бы как называется массив и примерно как в нем хранится)

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


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

LuaApi!

http://pastebin.com/RrzgJNrq

Пиксели лежат строками не столбцами.

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

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


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

LuaApi!

http://pastebin.com/RrzgJNrq

Пиксели лежат строками не столбцами.

Где хранится длина и ширина картинки?(Довольно важные параметры), и еще у меня не компилится исходник (Could not find or load main class org.gradle.wrapper.GradleWrapperMain), и еще лучше, чтобы скрипты можно было добавлять/изменять после этапа компиляции(Разделится на 2 типа впиленные и внешние)

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

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


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

Где хранится длина и ширина картинки?(Довольно важные параметры), и еще у меня не компилится исходник (Could not find or load main class org.gradle.wrapper.GradleWrapperMain), и еще лучше, чтобы скрипты можно было добавлять/изменять после этапа компиляции(Разделится на 2 типа впиленные и внешние)

Добавил wrapper, длина и ширина определяет в таблице ключами width и height

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


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

Короче сохранение я вроде сделал, но проверить работоспособность не могу т.к. не могу разобраться как компилить

post-19489-0-80872600-1479145224_thumb.png

Загрузку я еще не начинал делать, вот код zzyJX5Xb

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


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

Короче сохранение я вроде сделал, но проверить работоспособность не могу т.к. не могу разобраться как компилить

attachicon.gifБезымянный.png

Загрузку я еще не начинал делать, вот код zzyJX5Xb

 

не будет работать, библиотек component, unicode, colorlib, filesystem нету

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


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

не будет работать, библиотек component, unicode, colorlib, filesystem нету

Точно, нужно будет выпилить require и впилить colorlib в код, совсем забыл про них, но что делать с unicode???

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


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

Точно, нужно будет выпилить require и впилить colorlib в код, совсем забыл про них, но что делать с unicode???

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

https://www.dropbox.com/sh/rpjioshlrdc5i7h/AAB5jkhhqVxOsJZiBbEXFtpKa?dl=0

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


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

Короче сохранение я вроде сделал, но проверить работоспособность не могу т.к. не могу разобраться как компилить

attachicon.gifБезымянный.png

Загрузку я еще не начинал делать, вот код zzyJX5Xb

Неправильный подход к помощи в разработке.

Этот проект находится на github. Вы вполне можете сделать fork репозитория. Добавить какие-либо фичи и баги, оттестировать их.

Далее можно отправить pull request, а автор решит принять или отменить ваши изменения.

 

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

Надо относиться с уважением друг к другу.

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

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


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

Короче сохранение я вроде сделал, но проверить работоспособность не могу т.к. не могу разобраться как компилить

attachicon.gifБезымянный.png

Загрузку я еще не начинал делать, вот код zzyJX5Xb

У тебя jdk не установлен.

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


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

BugReport

  1. Пропуск пикселей
    Если выбрать цвет, зажать клавишу и начать быстро водить мышкой по экрану, то кисть будет рисовать прерывистую линию.


    rD6qlLM.png

    Также если начать рисовать вне холста, то когда мышь дойдёт до листа она не будет рисовать. Это иногда мешает проводить линии.

  2. Пропадание кнопки с текстом 'custom colors'
    После создания нового цвета, пропадает кнопка для создания ещё одного цвета. Для того чтобы использовать её снова приходится делать довольно-таки хитрое действие.


    L4TINuZ.png

  3. Не правильное отображение закрашенных квадратов и символов на них
    Если начать рисовать разноцветные символы поверх пиксельной картинки представленной на изображениях выше, то получится вот такая хурма:


    jCPipxM.png

  4. Не правльное отображение новых цветов
    Во-первых в палитре цвета с альфаканалом следует отображать на фоне 'шахматной клетки'
    Во-вторых при создании большого количества цветов новые цвета начинают залезать под таблицу с символами.


    LZ8pwsl.png

  5. Расположение холста
    Намного удобнее будет если холст можно будет размещать в любом месте рабочего поля, и если будет добавлена функция изменения масштаба изображения.
  6. Работа с файлами
    Приложение при сохранении изображения создаёт 'битые' файлы. То есть я могу создать файл без расширения или с расширением .jpeg, хотя приложение не умеет работать с файлами такого типа. И эти фалы невозоможно открыть и с помощью стандарных средств по работе с изображениями


    VOdisv4.png

  • Like 2

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


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

А ещё реквестирую фичу, чтобы программа показывала название текущего файла в заголовке, и отмечала звёздочкой, если есть несохранённые изменения.  :)

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


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

...

У тебя не последний релиз.

Пропуск пикселей

Если выбрать цвет, зажать клавишу и начать быстро водить мышкой по экрану, то кисть будет рисовать прерывистую линию.

Ответ: Не надо быстро водить мышку, тем более кисть не рисует линию, а заполняет пиксель, тобишь пропуск пикселей не баг, а просто медленный опрос мышь на её местоположение.

 

Пропадание кнопки с текстом 'custom colors'

После создания нового цвета, пропадает кнопка для создания ещё одного цвета. Для того чтобы использовать её снова приходится делать довольно-таки хитрое действие.

Ответ: В той версии такое было, но между ней и текущей я перерабатывал логику ресайза элементов и сейчас не замечаю такого.

 

Не правильное отображение закрашенных квадратов и символов на них

Если начать рисовать разноцветные символы поверх пиксельной картинки представленной на изображениях выше, то получится вот такая хурма:

Ответ: Есть такое, уже исправляется.

 

Не правльное отображение новых цветов

Во-первых в палитре цвета с альфаканалом следует отображать на фоне 'шахматной клетки'

Во-вторых при создании большого количества цветов новые цвета начинают залезать под таблицу с символами.

Ответ: Я использую палитру по умолчанию, она сама отображает как ей задано.

 

Расположение холста

Намного удобнее будет если холст можно будет размещать в любом месте рабочего поля, и если будет добавлена функция изменения масштаба изображения.

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

 

Работа с файлами

Приложение при сохранении изображения создаёт 'битые' файлы. То есть я могу создать файл без расширения или с расширением .jpeg, хотя приложение не умеет работать с файлами такого типа. И эти фалы невозоможно открыть и с помощью стандарных средств по работе с изображениями.

Ответ: Понятно что битые, скриптов нету, а что другие программы запрещают сохранять в других формата?

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


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

Добавил фичу в виде не прерывной линии при рисовании кистью.

  • Like 1

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


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

Решил начать заново. :D

Кому интересно, ждите, скоро будет первый билд.

  • Like 1

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


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

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

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

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

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

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

Войти

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

Войти сейчас

×