Pular para o conteúdo
Skillpedia
Interfaces (UI/UX)48 mil · #3825

photopea-embedded-editor

Permite que seu agente use um editor de fotos avançado dentro de aplicativos. Ele suporta muitas funções do Photoshop para edição de imagens.

O que ela faz

Esta ferramenta permite que você use o editor de imagens Photopea dentro de outros sites ou aplicativos. Você pode controlar o editor por código para automatizar tarefas de edição de imagens.

Quando usar

  • ✓Integrar um editor de imagens em seu site.
  • ✓Automatizar a edição de várias imagens.
  • ✓Criar recursos de edição de fotos em um aplicativo.

Exemplo do que pedir para a IA

“Incorpore o Photopea em meu site e me deixe renomear todas as camadas de texto com base no que elas contêm.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/photopea-embedded-editor/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/photopea-embedded-editor/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele funciona carregando o editor Photopea diretamente no seu navegador. Seu código pode então enviar comandos para o editor, como abrir arquivos, aplicar edições e salvar os resultados.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill photopea-embedded-editor

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/photopea-embedded-editor/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Habilidade de Editor Embutido Photopea

Guia Detalhado

Leia o guia detalhado antes de executar esta habilidade. Ele contém o procedimento completo e material de referência. Trate seus requisitos de segurança, pré-requisitos e validação como obrigatórios. Para um trabalho focado, carregue as seções relevantes; para um trabalho de ponta a ponta, leia o guia completamente.

Quando Usar Esta Habilidade

Use esta habilidade para todas as tarefas que envolvam:

  • Embutir o Photopea como um editor de imagens dentro de uma página web ou aplicativo web
  • Controlar uma instância embutida do Photopea a partir do seu código JavaScript
  • Automatizar fluxos de trabalho de edição de imagens a partir de uma página hospedeira (abrir arquivos, executar scripts, exportar resultados)
  • Construir um recurso de edição de imagens em seu produto usando o Photopea como motor
  • Escrever scripts para manipular documentos, camadas, textos, seleções, filtros, cores e caminhos

NÃO use conexões postMessage cruas — sempre use photopea.js como o invólucro.


Exemplos Completos de Scripts Práticos

1. Renomear todas as camadas de texto com base em seu conteúdo

app.preferences.rulerUnits = Units.PIXELS;
var doc = app.activeDocument;

function processLayers(parent) {
  for (var i = 0; i < parent.layers.length; i++) {
    var l = parent.layers[i];
    if (l.typename === "LayerSet") processLayers(l);
    else if (l.kind === LayerKind.TEXT) {
      l.name = l.textItem.contents.substring(0, 30);
    }
  }
}
processLayers(doc);
app.echoToOE("done");

2. Exportar cada camada como um PNG separado

app.preferences.rulerUnits = Units.PIXELS;
var doc = app.activeDocument;

for (var i = 0; i < doc.layers.length; i++) {
  // Hide all layers
  for (var j = 0; j < doc.layers.length; j++) doc.layers[j].visible = false;
  // Show only this layer
  doc.layers[i].visible = true;
  // Export
  var opts = new ExportOptionsSaveForWeb();
  opts.format  = SaveDocumentType.PNG;
  opts.PNG8    = false;
  opts.quality = 100;
  doc.exportDocument(
    new File("/" + doc.layers[i].name + ".png"),
    ExportType.SAVEFORWEB, opts
  );
}

// Restore visibility
for (var i = 0; i < doc.layers.length; i++) doc.layers[i].visible = true;

3. Encontrar e substituir texto em todas as camadas de texto

var searchText   = "2024";
var replaceText  = "2025";

function findReplaceText(parent) {
  for (var i = 0; i < parent.layers.length; i++) {
    var l = parent.layers[i];
    if (l.typename === "LayerSet") findReplaceText(l);
    else if (l.kind === LayerKind.TEXT) {
      var t = l.textItem;
      if (t.contents.indexOf(searchText) !== -1) {
        t.contents = t.contents.split(searchText).join(replaceText);
      }
    }
  }
}
findReplaceText(app.activeDocument);
app.echoToOE("Find & Replace complete");

4. Grade de camadas duplicadas

app.preferences.rulerUnits = Units.PIXELS;
var doc   = app.activeDocument;
var layer = doc.activeLayer;
var cols  = 4, rows = 3;
var padX  = 20, padY = 20;
var w = layer.bounds[2] - layer.bounds[0];
var h = layer.bounds[3] - layer.bounds[1];

for (var r = 0; r < rows; r++) {
  for (var c = 0; c < cols; c++) {
    if (r === 0 && c === 0) continue; // skip original
    var copy = layer.duplicate();
    var targetX = layer.bounds[0] + c * (w + padX);
    var targetY = layer.bounds[1] + r * (h + padY);
    copy.translate(targetX - copy.bounds[0], targetY - copy.bounds[1]);
    copy.opacity = 100 - (r * cols + c) * 5;
  }
}

5. Aplicar marca d'água de um URL

app.preferences.rulerUnits = Units.PIXELS;
var doc = app.activeDocument;

// Open watermark as smart object layer
app.open("https://example.com/watermark.png", null, true);
var wm = doc.activeLayer;

// Resize to 20% of document width
var wmW = wm.bounds[2] - wm.bounds[0];
var targetW = doc.width * 0.2;
var scalePct = (targetW / wmW) * 100;
wm.resize(scalePct, scalePct, AnchorPosition.TOPLEFT);

// Move to bottom-right with 20px margin
var wmNewW = wm.bounds[2] - wm.bounds[0];
var wmNewH = wm.bounds[3] - wm.bounds[1];
wm.translate(
  doc.width  - wmNewW - 20 - wm.bounds[0],
  doc.height - wmNewH - 20 - wm.bounds[1]
);
wm.opacity = 60;
app.echoToOE("watermark applied");

6. Obter todas as informações de camada como JSON

function getLayerInfo(parent, depth) {
  depth = depth || 0;
  var result = [];
  for (var i = 0; i < parent.layers.length; i++) {
    var l = parent.layers[i];
    var info = {
      name:    l.name,
      type:    l.typename,
      visible: l.visible,
      opacity: l.opacity,
      depth:   depth
    };
    if (l.typename === "ArtLayer") {

…
Perguntas frequentes

Posso usar isso para editar fotos diretamente no meu navegador?

Sim, esta ferramenta permite que você integre o editor Photopea em seu próprio aplicativo ou site, permitindo que os usuários editem fotos dentro desse ambiente.

O que significa 'automatizar fluxos de trabalho de edição de imagens'?

Significa que você pode escrever instruções (scripts) para que o editor realize tarefas repetitivas automaticamente, como renomear camadas ou exportar cada camada como um arquivo separado.

Quais são as limitações?

Não substitui os termos de serviço do Photopea, depende da conexão com a internet e de como o navegador lida com recursos. Scripts devem ser confiáveis e valores dinâmicos devem ser protegidos.

Detalhes

Descrição original do autor

Embed Photopea in web apps using photopea.js. Covers embedding, file I/O, scripting, exporting, layers, text, filters, and the full Photoshop-compatible API.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3825
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas