Add custom Persian or English text on a solid color or your own photo. Drag to position, pick fonts, shadow and outline. Export PNG or JPG — 100% in your browser.
1080 × 1080 px
×
80
100%
0
1.4
Shadow
Blur6
Offset3
Outline
Width3
Fill the canvas
40%
100%
0
0%
Flip horizontally
Shadow
Blur16
Offset8
Fill the canvas
On: a backdrop at the bottom of the stack, or a tint over the layers below. Off: a box you size and drag yourself.
60%
40%
0%
100%
Pick a color
About This Tool
A free tool for putting text on a photo. Made for Instagram posts and stories, captions, quotes, poetry, greetings, and any time words need to sit on an image. Nothing to install and no signup; Persian and Arabic fonts range from modern sans to Nastaliq calligraphy, and every change shows up in the preview straight away.
You work in layers: colour layers, image layers and text layers. The bottom layer is your background, so start with a colour or a ready-made gradient, or drop your own photo in. Then stack as many text layers as you need, each with its own font, colour, size and effects. Image layers hold a logo, signature or sticker, and a low-opacity colour layer over the photo keeps the text readable. Switch off "Fill the canvas" on that same colour layer and it becomes a box, ready for a quote card.
Drag any layer on the canvas to position it; near the middle it snaps, and a guide line confirms it is exactly centred. The up and down buttons decide which layer sits on top. Anything you change can be taken back with the undo button, so experimenting costs nothing. When you are done, pick a ready-made size (post, story, landscape) or your own dimensions and export as PNG or JPG. For a sticker or a text logo, switch off the background layer so the PNG keeps its transparency. Your image and text are never stored on any server.
Frequently Asked Questions
How do I add multiple text blocks (e.g. a quote and an author name)?
Above the layer list, click "+ Text" to add a new layer with independent settings. Each layer has its own font, color, size, shadow and outline. Click a layer row to open its settings right there, or click directly on a layer in the preview to select it.
How do I change the text colour or pick a colour from the photo?
Click the layer's row in the layer list to open its settings; "Text colour" is right there. Click the colour swatch to open the picker, or type a colour code in the field beside it. Every colour field also has an eyedropper: click it, then click any spot on the preview to take that exact colour. It is the quickest way to match your text to a colour already in the photo, and it works for shadows, outlines and colour layers too.
How do I place the text on a specific part of the image?
Click and drag the text on the preview canvas to move it. It works the same way on mobile via touch. Near the middle of the canvas it snaps, and a guide line confirms it is exactly centred. On a keyboard, arrow keys nudge the layer pixel by pixel after you drop it, and Shift makes each step larger. With multiple layers, the layer you clicked becomes active, then you drag.
How do I put a logo, signature, or sticker on the photo?
Above the layer list, click "+ Image" and pick your file. A PNG with a transparent background works best so only the artwork lands on the photo. Then set its size, opacity, corner radius, and shadow, and drag it on the preview to the corner you want. For a watermark, set opacity to roughly 30-50%.
How do I keep the text readable on a busy photo?
Three options. One: enable the "Outline" effect with a dark colour. Two: add a "Shadow". Three: add a colour layer with "+ Colour", set it to black at roughly 30-50% opacity, then use the up and down buttons on its row to move it above the photo and below the text. Because you choose the colour and its place in the stack, you can build any colour wash you like, not just a dark one. You can also blur the photo layer so it sits more quietly behind the text.
How do I put one coloured card behind several text layers?
Add a colour layer with "+ Colour" and switch off "Fill the canvas" to turn it into a box. Set its width, height and corner radius, and drag it on the preview to place it. Then move it below your text layers with the down button. Because the box is independent, a quote and an author name both sit on the same card.
How do I export with a transparent background?
In the layer list, click the eye button on the bottom layer (the colour layer) to switch it off — no need to delete it. Nothing fills the canvas any more, and the preview shows a checkerboard to confirm it. Export as PNG and the empty areas stay transparent, ready for a sticker or a text logo. The same eye button brings the layer back whenever you want. JPG cannot store transparency and fills the empty areas with white instead.
How do I control which layer sits on top?
In the layer list, the higher a layer sits, the more it covers the ones below. Use the up and down buttons on each row to move it. For example, to show text over a logo, put the text layer above the logo layer.
Can I undo a change?
Yes. The undo button next to the download buttons takes back the last change, and the one beside it moves forward again; Ctrl+Z and Ctrl+Y work too. Deleting a layer, dragging it on the canvas and even switching the canvas preset can all be undone, so you can try things without worrying.
Which font works best for text on a photo?
The fonts come in four categories: modern sans (Vazirmatn, Cairo) for plain readable text, serif and Naskh (Markazi Text, Amiri, Mirza) for a bookish feel, decorative display (Lalezar, El Messiri, Aref Ruqaa) for headlines and short lines, and IranNastaliq for calligraphy. Click any font to see your own text previewed in it.
Is Nastaliq supported for writing poetry on an image?
Yes. The IranNastaliq font in the calligraphy group is there for poetry and literary quotes on an image. Selecting it opens up the line height automatically so the lines do not collide, and combining it with the shadow effect gives the look of real Persian calligraphy.
Are there ready-made sizes for Instagram posts and stories?
Yes. Square 1:1 at 1080×1080 for a regular post, Portrait 4:5 at 1080×1350 which takes up more room in the feed and suits text better, Story 9:16 at 1080×1920, and Landscape 16:9. For anything else, hit "Custom" and type a width and height up to 4096 px.
What is the difference between PNG and JPG export?
PNG is lossless and produces a larger file — best when you want pixel-perfect detail or a transparent background. JPG is much smaller and ideal for fast uploads to Instagram and Telegram.
What images can I load, and how large can they be?
JPG, PNG and WEBP up to 15 MB per image. You can drag and drop the file, pick it from the file button, or paste it straight from the clipboard.
Is my image uploaded to any server?
No. Your image and text are never stored on any server or database, and they are not used for anything else. The exported file is produced on your own device.