Pacote de stickers animados para iMessage: tamanhos e APNG
Por equipe Charmotion · Atualizado em

A Apple especifica as imagens de sticker do iMessage em dimensões @3x, em pixels: pequeno 300×300, normal 408×408 e grande 618×618. Use um único tamanho para o pacote inteiro e mantenha cada arquivo com 500 KB ou menos. Para animação, use APNG, que tem transparência de 8 bits; o GIF também anima, mas só aceita transparência de uma única cor.
Principais pontos
- Os tamanhos são em pixels @3x: 300×300 pequeno, 408×408 normal, 618×618 grande.
- Não misture tamanhos em um pacote; cada arquivo de sticker deve ter 500 KB ou menos.
- O APNG anima com transparência de 8 bits; o GIF anima com transparência de uma única cor.
- Forneça uma descrição alternativa localizada para cada sticker, para o VoiceOver.
- Os pacotes de stickers funcionam no Mensagens do iOS e do iPadOS, não no macOS, tvOS, visionOS ou watchOS.
Já tem um personagem ou logo? Veja seu personagem em telas reais de app: telas de splash, onboarding, carregamento e estado vazio. É grátis, roda no navegador e não envia nada.
Quais tamanhos a Apple exige para stickers do iMessage?
As Human Interface Guidelines da Apple dizem: "Crie as imagens dos seus stickers usando as seguintes dimensões @3x."
| Tamanho do sticker | Dimensões da imagem (pixels @3x) |
|---|---|
| Pequeno | 300×300 |
| Normal | 408×408 |
| Grande | 618×618 |
Escolha um tamanho por pacote. As HIG dizem para "preparar todos os seus stickers nesse tamanho; não misture tamanhos em um mesmo pacote de stickers." O tamanho escolhido define quantos stickers cabem em uma linha da gaveta do Mensagens: o pequeno serve para um conjunto grande de reações simples, e o grande, para poucos personagens detalhados.
Todos os arquivos têm o mesmo limite de peso: "Um arquivo de sticker deve ter 500 KB ou menos." Os pacotes de stickers são compatíveis com o Mensagens no iOS e no iPadOS; as HIG os listam como "Não compatível com macOS, tvOS, visionOS ou watchOS."
300/408/618 são pontos ou pixels?
Pixels. As HIG chamam de "dimensões @3x", o que significa que os números são o tamanho real em pixels do arquivo de imagem exportado, já com três vezes o tamanho em pontos na tela. Um sticker normal é uma imagem de 408×408 pixels, não uma imagem de 408 pontos que você multiplicaria de novo.
Essa é uma causa comum de pacotes grandes demais. Se você tratar 408 como pontos e exportar em 1224×1224, cada arquivo terá nove vezes a quantidade de pixels necessária, e os stickers animados passam do limite de 500 KB quase na hora.
Você fornece só a imagem @3x. O Mensagens ajusta a escala para o dispositivo. Exporte exatamente o tamanho em pixels da categoria escolhida, com o personagem centralizado e uma pequena margem transparente, para que ele não encoste nas bordas quando as pessoas destacarem o sticker e o colocarem sobre uma mensagem.
APNG ou GIF: qual mantém bordas transparentes suaves?
APNG. A tabela de formatos da Apple lista estas propriedades:
| Formato | Transparência | Animação |
|---|---|---|
| PNG | 8 bits | No |
| APNG | 8 bits | Yes |
| GIF | Uma única cor | Yes |
| JPEG | No | No |
Transparência de 8 bits significa que cada pixel tem 256 níveis de opacidade, então contornos suavizados, sombras suaves e brilhos se misturam a qualquer balão de mensagem ou foto em que o sticker for colocado. Transparência de uma única cor significa que uma cor da paleta é totalmente transparente e todos os outros pixels são totalmente opacos, o que deixa bordas em degraus e um halo na cor de fundo usada no GIF.

Stickers ficam sobre balões, fotos e nos modos claro e escuro, então a qualidade das bordas aparece mais aqui do que em um fundo fixo. Use GIF só se a sua arte tiver bordas de pixel duras de propósito.
Como converto uma animação com fundo transparente para APNG?
O ffmpeg grava APNG diretamente. Este é o comando de APNG testado para Discord/iMessage, com a escala definida no tamanho normal do iMessage, de 408 px:
ffmpeg -c:v libvpx-vp9 -i character.webm -vf "fps=15,scale=408:408" -plays 0 -f apng sticker.png
-c:v libvpx-vp9antes de-ifaz o ffmpeg decodificar o canal alfa do WebM; o decoder VP9 padrão o ignora.scale=408:408define o tamanho do pacote; use 300 ou 618 para pequeno ou grande.-plays 0faz um loop infinito. Documentação do FFmpeg: "0 gera um loop infinito; com 1 não há loop."-f apngcom um nome.pnggera um arquivo que o catálogo de assets de stickers do Xcode aceita.
O mesmo comando com scale=320:320 foi executado no ffmpeg 7.1.1 e gerou um APNG RGBA com a transparência intacta. Partindo de um GIF, remova o -c:v libvpx-vp9 do início; as bordas duras do GIF serão mantidas.
Como mantenho cada sticker animado abaixo de 500 KB?
Os frames do APNG são comprimidos sem perdas, então o tamanho do arquivo cresce rápido com a quantidade de frames e de pixels. Se ls -l sticker.png mostrar mais de 500 KB:
- Reduza a taxa de frames. Teste
fps=12oufps=10. Stickers ficam bons com taxas modestas. - Encurte o clipe. Use o essencial da reação; 1,5 a 3 segundos costumam bastar.
- Use um tamanho de pacote menor. 300×300 tem cerca de metade dos pixels de 408×408.
- Simplifique o movimento. Um movimento de corpo inteiro muda mais pixels por frame do que uma piscada ou uma inclinação de cabeça.
Confira cada arquivo. Basta um sticker acima do limite para o Xcode exibir um aviso ou para o pacote falhar na validação, e o limite vale por arquivo, não para o pacote como um todo.
Como crio um app Sticker Pack no Xcode?
Um pacote só de stickers não precisa de código. No Xcode, crie um novo projeto a partir do template iOS Sticker Pack App. Ele contém um catálogo de assets Stickers com uma pasta Sticker Pack; arraste seus arquivos APNG, GIF ou PNG para ela. Defina no pacote o tamanho do sticker (pequeno, normal ou grande) de acordo com as dimensões exportadas.
O template também tem um conjunto iMessage App Icon, que você preenche como qualquer outro ícone do app. Depois, compile para um dispositivo ou para o Simulator, abra o Mensagens e confira cada sticker sobre um balão claro, um balão escuro e uma foto.
Publique pelo App Store Connect como qualquer app. Se precisar de um comportamento personalizado, como gerar stickers em tempo de execução, o framework Messages da Apple aceita uma extensão de app completa do iMessage no lugar do template.
Preciso de texto alternativo para os stickers?
Sim. As HIG dizem: "Para cada sticker, forneça uma descrição alternativa localizada." O VoiceOver lê essa descrição quando alguém navega até o sticker, para que um destinatário cego ou com baixa visão saiba o que foi enviado. Descreva o significado, não o arquivo: "Robô fazendo joinha" é útil; "sticker_04", não.
Mantenha as descrições curtas e localizadas para todos os idiomas que o seu app suporta, já que o destinatário pode usar um idioma diferente do remetente.
Boas descrições citam o personagem e a ação, e a emoção quando ela importa: "Raposa acenando oi", "Raposa rindo", "Raposa dando de ombros, em dúvida". Evite repetir o nome do pacote em cada sticker; quem usa VoiceOver ouve isso toda vez. Escreva as descrições enquanto nomeia os arquivos, para que nenhum sticker seja publicado sem uma.
Como começar a partir de uma animação de personagem do Charmotion?
O Charmotion transforma um personagem, mascote ou logo enviado em 17 animações como arquivo .riv em poucos minutos. WebM transparente (VP9 com alfa) e MOV (HEVC com alfa) em 1080×1080, MP4 e um GIF de 480 px são exportados sob demanda, em cerca de um minuto. Ele não exporta pacotes do iMessage. O GIF de 480 px tem fundo sólido, então para figurinhas transparentes com bordas limpas converta o WebM transparente (planos pagos, a partir de US$ 20/mês) para APNG de 300, 408 ou 618 px com o comando acima.
A origem em 1080×1080 cobre até o tamanho grande de 618×618 sem ampliação. Reações únicas curtas, como success, yes e no, cabem com folga abaixo de 500 KB como APNG no tamanho normal; humores em loop mais longos podem precisar de uma taxa de frames menor ou do tamanho pequeno para ficar dentro do limite.
Como criar um pacote de stickers animados para iMessage
- Escolha um tamanho. Escolha pequeno (300×300), normal (408×408) ou grande (618×618), em pixels @3x, para o pacote inteiro.
- Converta para APNG. Rode o ffmpeg com
-c:v libvpx-vp9antes de-i,scaledefinido no seu tamanho,-plays 0e-f apng. - Confira o tamanho. Confira se cada arquivo tem 500 KB ou menos; se não tiver, reduza o fps ou encurte a animação.
- Crie o projeto no Xcode. Comece pelo template Sticker Pack App e arraste os arquivos para a pasta Sticker Pack.
- Adicione descrições. Dê a cada sticker uma descrição alternativa localizada para o VoiceOver.
- Teste no app Mensagens. Confira cada sticker sobre balões claros e escuros e sobre fotos em um iPhone ou iPad.
Perguntas frequentes
Os stickers do iMessage podem ser animados?
Sim. As HIG da Apple listam APNG e GIF como formatos animados. O APNG suporta transparência de 8 bits para bordas suaves, enquanto o GIF suporta apenas transparência de uma única cor. Stickers estáticos podem ser PNG ou JPEG, mas o JPEG não tem transparência. Todo arquivo de sticker precisa ter 500 KB ou menos, animado ou não.
Posso misturar stickers pequenos e grandes no mesmo pacote?
Não. As diretrizes da Apple pedem que todos os stickers sejam preparados em um único tamanho, sem misturar tamanhos dentro do mesmo pacote. Escolha pequeno com 300×300, normal com 408×408 ou grande com 618×618 pixels e exporte cada arquivo exatamente nesse tamanho antes de adicioná-lo ao Xcode.
Os pacotes de stickers do iMessage funcionam no Mac?
Não. As Human Interface Guidelines da Apple indicam que apps e stickers do iMessage não são suportados no macOS, tvOS, visionOS nem watchOS. Crie e teste seu pacote para o Mensagens no iPhone e no iPad, que é onde as pessoas navegam pela App Store do Mensagens e adicionam pacotes de stickers.
Respostas rápidas deste guia
Fontes
- Human Interface Guidelines: iMessage apps and stickers, Apple Developer
- FFmpeg formats documentation (GIF and APNG muxers), FFmpeg
- ffmpeg loses WebM alpha with the default VP9 decoder, VideoHelp Forum