LINUX.ORG.RU

Проект PhotoSuite развивает открытый аналог Photoshop

 , , , ,


0

2

https://www.opennet.ru/opennews/art.shtml?num=66404:

Доступны первые выпуски графического редактора PhotoSuite, разработчик которого поставил перед собой цель создать продукт, способный заменить классический Adobe Photoshop и полностью поддерживающий форматы PSD и PSB. Программа поддерживает редактирование растровой и векторной графики, и по возможности воспроизводит рабочие процессы, панели инструментов, диалоги, горячие клавиши и модификаторы, привычные пользователям Photoshop CS6. В качестве основного формата файлов применяется PSD. Заявлено, что PSD-файлы, сохранённые в PhotoSuite, могут без проблем открываться в Photoshop и наоборот.

Код написан на JavaScript и распространяется под лицензией GPLv3. Готовые сборки формируются для Linux, Windows и macOS. Для выполнения в качестве обособленного десктоп-приложения задействована небольшая обвязка на языке Rust и платформа Tauri, предоставляющая возможности для использования родных диалогов и меню, доступа к файловой системе, работы с буфером обмена, вывода на печать и перемещения файлов мышью. По заявлению автора проекта, код опубликован после около года разработки в приватном репозитории. В процессе работы используется AI-ассистент, но развивающий проект разработчик не считает PhotoSuite AI-слопом, так полностью контролирует процесс, имея более 20 лет опыта разработки на JavaScript.

Среди реализованных возможностей:

  • Работа с растровыми и векторными слоями, группами слоёв и масками. Совместимые с Photoshop стили слоёв для создания теней, свечения, тиснения, наложение цвета, градиентов, шаблонов и обводки. Умные объекты и фильтры с поддержкой недеструктивного редактирования.
  • Классический набор инструментов, включая выделение, кадрирование, кисти, штампы, восстанавливающая кисть, ластик, градиенты, размытие, осветление/затемнение, перо, текст, фигуры и пипетка.
  • Панорамирование, масштабирование и вращение холста. Выравнивание по сетке, линейкам и произвольно выставляемым направляющим.
  • Ведение истории операций с поддержкой отката изменений и сохранения снапшотов состояния.
  • Набор фильтров, поддерживающих многопоточное выполнение и live-предпросмотр.
  • Возможности для коррекции оптических искажений.
  • Задействование WebAssembly для высокопроизводительной обработки изображений.
  • Инструменты для работы с текстом, использующие Typr.js для работы со шрифтами и скомпилированный в WebAssembly движок HarfBuzz для компоновки текста. Поддержка привязки текста к криволинейной направляющей, деформации текста, лигатур OpenType и кернинга.
  • Возможность создания скриптов для автоматизации действий, используя JavaScript/JSX и движок Acorn.
  • Поддержка создания плагинов для интеграции инструментов в боковую панель.
  • Поддержка форматов файлов: PSD, PSB, AI (Adobe Illustrator), XD (Adobe XD), PNG, APNG, JPEG, WebP, AVIF, TIFF, GIF, BMP, TGA, OpenEXR, SVG, PDF, PostScript, EPS, EMF, WMF, DXF, Sketch, FIG (Figma), AF (Affinity Photo/Designer), XCF (GIMP), DNG, CR2, NEF, ARW и специфичных для камер RAW-форматов.

Перемещено hobbit из talks

★★★★★

имея более 20 лет опыта разработки на JavaScript.

Features in Photoshop that use the graphics processor

Features that require a GPU for acceleration

  • Artboards
  • Blur Gallery - OpenCL accelerated
  • Camera Raw
  • Image Size – Preserve Details
  • Lens Blur
  • Neural Filters
  • Select Focus
  • Select and Mask - OpenCL accelerated
  • Smart Sharpen - OpenCL accelerated
  • Features that won’t work without a GPU

If your graphics processor is unsupported or its driver is defective, the following Photoshop features won’t work:

  • 3D
  • Birds Eye View
  • Flick Panning
  • Oil Paint
  • Perspective Warp
  • Render – Flame, Picture Frame, and Tree
  • Scrubby Zoom
  • Smooth Brush Resizing

link

Удачи ему в его нелёгком деле.

LamerOk ★★★★★
()

Вся новость оформлена как цитата, очень удобно читать…

wandrien ★★★★
()

Покомпиляло на славу:

$ git clone --recursive https://github.com/eolix/photosuite.git
<<SKIPPED>>
$ cd photosuite/
$ du -hs .
752M	.
$ du -hs *
8,0K	CONTRIBUTING.md
24K	docs
4,0K	eslint.config.mjs
4,0K	eslint.undef.config.mjs
32K	examples
36K	LICENSE
4,0K	package.json
44K	package-lock.json
28K	packaging
16K	README.md
96K	scripts
318M	src
1,7M	src-tauri
2,1M	tests
60K	THIRD-PARTY-NOTICES.md
8,0M	website
$ npm install

added 83 packages, and audited 84 packages in 4s

20 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
$ du -hs .
787M	.
$ npm run dev
npm notice run dev
npm notice run npm run vendor:fixlinks && tauri dev --no-dev-server
npm notice run vendor:fixlinks
npm notice run node scripts/repair-vendor-symlinks.mjs
     Running DevCommand (`cargo  run --no-default-features --color always --`)
    Updating crates.io index
<<SKIPPED>>
$ du -hs .
6,8G	.
$ du -hs *
8,0K	CONTRIBUTING.md
24K	docs
4,0K	eslint.config.mjs
4,0K	eslint.undef.config.mjs
32K	examples
36K	LICENSE
35M	node_modules
4,0K	package.json
44K	package-lock.json
28K	packaging
16K	README.md
96K	scripts
318M	src
6,1G	src-tauri
2,1M	tests
60K	THIRD-PARTY-NOTICES.md
8,0M	website
wandrien ★★★★
()

Код написан на JavaScript

хочеться обнять и плакать.

splinter ★★★★★
()
Ответ на: комментарий от dataman

Мне понравилось.

Наконец-то не очередной текстовый редактор на электроне.

А что-то интересное и на tauri.

Буду пользоваться при случае, посмотрю, насколько это лучше/хуже гимпа.

wandrien ★★★★
()
Ответ на: комментарий от dataman

Тебе ж написали:

развивающий проект разработчик не считает PhotoSuite AI-слопом, так полностью контролирует процесс, имея более 20 лет опыта разработки на JavaScript.

bbc69
()

GIMP на жабаскрипте переписывают что ли?

Radjah ★★★★★
()
Последнее исправление: Radjah (всего исправлений: 1)
Ответ на: комментарий от dataman

Видимо, что-то пошло не так.

На OpenNET написали:

Самый прикол в том, что там в ишьюсах разразилась ДРАМА! ) Пришел сам Ivan Kutskir (разработчик Photopea) и стал упрекать автора, что тот украл у него дизайн! Да-да, тот самый Photopea, который является по сути клоном Фотошопа!

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

Currently running an internal code audit. Latest releases available.

Интересно… Что ж, ждём продолжения, если будет.

wandrien ★★★★
()

Это тот проект, что украл через ИИ исходники?

anonymous
()
Ответ на: комментарий от hobbit

Боюсь представить, насколько он больше жрёт…

Чуть больше полгига ОЗУ сразу после запуска, до открытия файла.

После открытия картинки 1280x1024 еще примерно 100 метров сверху.

Замеры - по значению суммарно занятой памяти в htop.

На прогретом кэше открывается моментально, тормозов при запуске нет.

wandrien ★★★★
()
Ответ на: комментарий от dataman

gimp:

Примерно плюс 120-140 метров при запуске.
Примерно плюс 90-100 при открытии такой же картинки.

gimp запускается дольше, его сплеш-скрин висит несколько мгновений, и можно успеть прочитать, как там надписи меняются.

Еще раз перемерил запуск сабжа при менее загруженной системе, чтобы были меньше скачки показателей - прирост около 550 метров.

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

Ну и судя по драме по ссылке, проект реально с пушком и вряд ли вернётся. А если вернётся, то после такой истории контрибуторов там не особо будет. А жаль. У меня остались сорцы, но толку теперь от них, если они «прокляты».

wandrien ★★★★
()
Последнее исправление: wandrien (всего исправлений: 1)

В процессе работы используется AI-ассистент, но развивающий проект разработчик не считает PhotoSuite AI-слопом, так полностью контролирует процесс

А все кругом-то первый день в профессии и охотно в такое верят

pihter ★★★★★
()

Еще есть навайбкоженый Compositor, который всего 11 Мб весит. Тоже аналог фотошопа.

the_real_kinik ★★★
()
Ответ на: комментарий от wandrien

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

Это неоднозначный подход к сравнению производительности графических редакторов.
Работа с одной фотографией может занимать несколько часов. Если при этом редактор один раз в начале запускается не 5 секунд, а 15, это вообще не важно.
Зато, важно сколько, например, секунд выполняется размытие (gaussian blur), потому что это базовый фильтр, на котором основан, например, USM или многие шумодавы. Давным-давно я сравнивал но больших снимках: фотошоп накладывал фильтр секунд за 8, гимп - за две с половиной минуты. С тех пор многое поменялось, но такой тест гораздо показательнее, да.

ist76 ★★★★★
()
Ответ на: комментарий от ist76

Я не оценивал производительность графического редактора, я посмотрел на baseline оверхед выбранной технологии по памяти.

А производительность слишком комплексное понятие. Например, в одном из реальных кейсов я упёрся в скорость сохранения png как самую медленную операцию конвеера - настолько большие файлы надо было править.

wandrien ★★★★
()
Ответ на: комментарий от Bad_ptr

Ну как тебе сказать…

  • Менюшки рендерятся внутри окна, а не отдельным окном.
  • Когда менюшки не влезают в окно по высоте, то промотать в отрезанную область - нельзя.
  • Управление с клавиатуры в меню отсутствует. Только мышь.
  • File -> Open ничего не делает и никаких сообщений об ошибке тоже не формирует. Просто тишина.
  • ШГ и мыло в интерфейсе.
  • Открыл файл через командную строку. Выбрал Фильтр -> Гаусово размытие. Подёргал ползунок туда-сюда. Во время живого апдейта превью - весь GUI встаёт раком, оно походу однопоточное и синхронное.
  • Выбрал радиальное размытие -> оно зафризилось прямо при нажатии на пункт меню. Однопоточная шляпа в 2026-м.

В общем, совершенно типикал «Rust GUI приложение» в лучших традициях, Rust-коммунити не изменяет себе. Зато «без use after free» (но это не точно).

UPD:

!!!!!!

  • Нажимаю Layer в строке меню.
  • Открывается огромное меню. Так как оно не влезает в окно, то его самый верхний пункт подменю «New» рендерится с перекрытием над строкой меню.
  • Веду мышь вдоль пункта New по направлению к подменю.
  • На движение мыши реагирует пункт строки меню, которая находится НИЖЕ.
  • Меню Layer закрывается.

Зато есть боров и бизапасна!

wandrien ★★★★
()
Последнее исправление: wandrien (всего исправлений: 3)
Ответ на: комментарий от wandrien

Продолжаем!

  • При перемещении слоя визуально перемещается только рамка слоя, но не содержимое слоя. Как подгонять слой визуально, не ясно. Возможно, никак. Прямо как окна в винде в 94-м году.
  • На клавиатурные стрелки инструмент перемещения слоя никак не отзывается. Чтобы подгонять попиксельно, нужно идти в свойства слоя и редактировать координаты вручную.
  • При простом щелчке ЛКМ без передвижения мыши слой попеременно сдвигается на пиксель верх, на пиксель вниз, на пиксель верх, на пиксель вниз… Я думал, визуальный глич, но нет, это действие попадает в стек отмены, а в свойствах слоя меняется значение Y. То есть это однопиксельное перемещение. (???)
wandrien ★★★★
()
Ответ на: комментарий от dataman

!!!!!

https://github.com/eolix/photosuite/commit/15e2452c47977a06590de925422c7e7d11339a7c

За СУТКИ проект был переписан на Rust!

Ахахахаха! У кого ИИшница спёрла код на этот раз?))

UPD:

PhotoCraft engine

А… понятно, у кого.

wandrien ★★★★
()
Последнее исправление: wandrien (всего исправлений: 2)
Ответ на: комментарий от wandrien

Вот этот аспект иишечки я постоянно подчеркиваю. Это неограниченной мощный источник говна. Сейчас ты лишь слегка увяз и барахтаешься по фану, но скоро мы все тупо утонем.

thesis ★★★★★
()

Логичнее наверное тогда взять сам photocraft, но я лично так привык к Gimp, что наоборот гуглю как сделать что-то как в GIMP, когда сталкивался с Photoshop.

Сейчас же наверное картинку проще прямо в промте доработать/сгенерировать, да.

anonymous_sama ★★★★★
()
Последнее исправление: anonymous_sama (всего исправлений: 1)
Ответ на: комментарий от wandrien

Давно готовы.

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

Что-то слышится знакомое. До боли знакомое.

thesis ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария