Skip to main content
ASCII Art Generator logoASCII Art Generator

Don Quixote and the Windmill ASCII Art

Gustave Doré's 1863 engraving of Don Quixote's attack on the windmills: the knight and his horse Rocinante are flung into the air by a sail while Sancho Panza rides up on his donkey

The windmill sail slants across the top left as bands of + and *, and the knight and Rocinante caught on it form the densest % and @ cluster in the center. The pale sky to the right thins to - and :, with the distant windmills only faint marks, and the hillside fills the lower half with mixed *, # and %. Sancho Panza is too small to separate from the ground at this width. Illustration: Gustave Doré; ASCII conversion by this site.

Built Standard preview: 100 columns by 69 rows. Each result card lists its recipe. Select the text below to copy it without JavaScript.

View the conversion source
Source and reuse rights: documented; owner review pending

The conversion-source link provides the file used to make this example, not permission to redistribute it.

View bundled original file
Original source
Wikimedia Commons reproduction of a historical published illustration. Evidence link Evidence: Exact file record and SHA-1 checked October 28, 2026 UTC. Downloaded unchanged Wikimedia rendition: https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Adventure_with_the_Windmills.jpg/1920px-Adventure_with_the_Windmills.jpg.
File creator
Illustration: Gustave Doré (1832-1883), wood engraving signed by the engraver H. Pisan, from the 1863 illustrated edition of Miguel de Cervantes' Don Quixote. Subjects: Don Quixote, Rocinante and Sancho Panza at the windmills (Part 1, chapter 8). Scanned from a printed engraving; the Commons record cites a Flickr upload. Evidence link Evidence: Illustrator, date and publication are taken from the exact Commons file record..
License or terms
Public-domain illustration and faithful two-dimensional reproduction. Evidence link Evidence: The engraving was published in 1863 and Gustave Doré died in 1883, so it is out of copyright under any life-plus-70 or pre-1931 rule. The exact record is tagged PD-Art and PD-old-auto-expired (deathyear 1883), and the scan is a faithful two-dimensional reproduction. Don Quixote and Sancho Panza are characters from Cervantes' novel (1605 and 1615); Cervantes died in 1616 and the novel is public domain. No affiliation with or endorsement by any film, stage or other adaptation is implied. The exact file record lists no additional restrictions. Credits are retained voluntarily. Use as an educational conversion example implies no endorsement or affiliation; this does not clear later film, television or other adaptations of the same characters..
Preparation
The bundled file is the unchanged 1920-pixel rendition that Wikimedia generates from the 5224 x 6520 Commons original, which exceeds the editor's 24-megapixel limit, including its paper tone and margins. Sharp applies orientation and sRGB/Lanczos3 sampling for thumbnails and the 100-column Standard preview. The ASCII is a lossy conversion by this site; no image regions are reconstructed. Evidence: scripts/build-example-previews.cjs; exact source and sampled-raster SHA-256 hashes in lib/generated/example-previews.json.

Owner review: PENDING. The exact-file illustration evidence is documented for owner review; it does not clear later adaptations, merchandise, or uses implying endorsement or affiliation.

Standard ASCII

Standard ASCII Art: 100 columns; rows = max(1, round(columns × source height / source width × 0.55)).

Character ramp: @%#*+=-:. (including a final space).

Brightness 100%, contrast 100%, saturation 100%, hue 0, sepia 0%, inversion off. Dithering: none.

Open this recipe in the editor to keep this source, mode and settings. Browser resampling and fonts can differ from the built preview. Copy/TXT retain text; PNG uses black text on white at 12 px monospace, at least 1.2 line spacing and 20 px padding, independent of screen theme.

Open recipe in editor
=+===========-=++++++++*=-+=----------=========----==--=------===============--------=--==--------=-
-+++++++++++++==+*###**##*#+=-------------===-----=-=--===-=--=============+=====-=+=========+++=++-
:-=++++++==++++++++*##*****#*#+-===--------=---------------------=========================-====++++-
:--==+++=++*****+++++#*******#%##*----------------------------:::--------===============++==+++++++-
:-==--=*****#*+++***+==+**++*****+=-----=----------::-::-----:::-=--:---=================+==++=++++-
:-==-===+++++++**#*+**++++***++*********=-==-------::::::::--:::---::----=------=-============+===+-
:-===-==---+*+****+****====+**+++****#**--=-----------::::::---::::::::-------===-======--==-======-
:=========-=###+***+*+++**+=+++**+++++++++=-----------:::-:::--::-::::---------====----============-
:=======---=++***+++==++**#**+==*#*++++++***#+-=--::::::::::::-----::::--::-------------===========-
:===------=--:-=*+=++==++++***++=+**++*%%%#%#*---:::::::::::::::::::::::::--------:--==--==========-
:--=-----=----:=+*+=-=*+==+#*+**+==*#*+****#++=-::.:-::::::::::::.:::::::------::::--=--===========-
.-------=---=-:---+***##*+#*+=+*+*+=+++++**++++++++*=.:::::::::--::::::--------:----------=========-
:++-------==-----:+#*##****++++++####***+*#******####*+-::::-:-:---::::-----------==--:---=========-
:*===----------::-++**#***+*******#****####*#%#+=++*#*=------:::-::-----------::-:-------=--=======-
-#+===----------:::---=+*+++*****#**#*+++#@*******#*##*==----:::::-:----::---:-:---------=-========-
-%#+=-------:::-:::------+*++****=+%#*+*+=#%*##**#***#%%#=--:-:..:-=----:--------------=--=========-
-##+------------=-:--::--=+++=+*+=#%**+*++=*#*++**+#####**-.....::==:::::-----====-------==========-
:#%+---=------=-++--:....-::=*#%***%***+++++********++++*++=:.:::--:::::::---===-----=---=--=======-
:#%#----:::-----==+::....:::==+**%%*##*####*=*%**+***+#*%#+*#=.....::::::--:-==-::::::---==---=====-
:#*##+-::::------=++.....-::-.:++##***#%##***+#%#**+##%@%%*+*#=..::--::----==--:::::::----=---=====-
:****#*:.:-----::-=*-....==.-::-+**#*#@###*****##****#*#%%%#===-:----------=-:::::::::-=--=========-
-#*###%=.:::..-:::-=+:...-+.::::-*++#%*######*++*#*+*=+=*%%%*------=+*++++==--:::-------======----==
=#*####=.:::..:..:=++-..:-+-:::::-**%#####*#***+=#*-=-**#*%@%+-=*****#@@@@@%*+*=------::::-===---==-
-*+*#%#-.-::::.:-=+*+=.::-+=.:..:.:+**%#%**#*#%#+*%+=+#**%##@%#*#*++##*#%%%@@@@@%*=:::::::-===--===-
-++***#+:---::--==*+*==--=-..:...:.-***%%*##%#++*++++***%#==%%%####%%%%##*+**+=+*%%#+-::::-==-=---=-
-*+*#*#+----:-===+==+++=--:.:::::--=*#+##*#%*---=-===*%#**%%@@%#%%%%#**+==::::::::-=+-::--=========-
-*+*###+--==---:-=-=+++*-::.:--=+*+=-=++*#%#=-=--=-=#%#+#@@@@@@@@%@#=-=====--------::::-===========-
-***###*:-===--=---=+=*#=.-:=++=::...:+*#%%%#+-==:-*@##@@%**#%#@@%+*#+-==-==-----====---=========--=
-***###*:---=-=:::-=:-==*=::-==-::----=###%@*-:*#*=#%@%**+-=#+*%*=--+%#-------===============-====-=
-*###*##*++====-:=-:-+*-+*==--==+-=+--:=*%*+-:=%@*+*%%======+=#%--=---*#=--====+=========-----=====-
-%######+#*--=-----=-*+:=*+-----+=+=---:=+==+-##%##@@=--====+=##+-==---++================----======-
-#*####+-*-===+==---=%+-=+*==-===*=*=+--:-+-=+**%%%@@+-==--+*##-*+--====================---=========
:**#%%%+++====+-====*#+-=+**==--+*=**==:=*=:+#-+#%%%#=--=--+#%*--*=-====================--==========
:#*#####*===+=+:::==+#*==+**=--=++=*+-=-=#--+*--*###-------=+*=---++=========-=============-=======-
:***####%*==**=:::--++**==*+++= -*=+===--+*----=#*#%*=--=--+=*--=--++===--==-==========+====-=======
:****#####*=+=-:==-==+**+=+=*+--=*+==+=-==*+==+*####*====--=*=--=-==++===-======-==--==+=++++====-==
-#*#***%%##*=----==++*+##*++++=++*#+=+++*==+--=+#%%%*-==--=++-=+=--+=++=--=+-=====++=+++==-=====----
-**##*#*+###+:---=.:::-=*#+***++++**+++=++=+*++*#%%@#+=+*++*+=-=+::+*=++=--+=--++:+*++++=++++=-+=-:-
:*#*###*-*%##+.:+.== .*=:*+-+=+=+=+++#+=---=####%##%#==+++##=-:-+--++=-==-=++==++-+**++====++++*=---
:****##%+:*###=.:+=:-===::++===+++=+*==++=-*#*##*+*%#-:-==%+::::==============-==-+++++======+==++=-
:#****#%*:=##*#=.==:===+= :+=====++++*#+=+****#*+=#@#==-+=+=--------=--------=-++=---==--=+***-:----
:*+***#%#+++*###=++-===+-..:----==+*##=++=====*+-=##%#*++*+====++=++======-+***+*=====-===**+-:-----
-#*****###*+####**==-**=-:.:=++****#%=-=======+-+#=-+*##*========--===++==-=+**+===++++*+++==--====-
:****+*%%%%%%*###%+=+#+----=*+=--==++-====---=+=**==-+*##**+===------:------==++-**+++*+=*+----====-
:*+*+*+**++#%####%%*##==--++=:----==--=++=====+###+---=+***+++=--=========++==+===*#+*+=*+=---=====-
:**####*+++++#%%##%#%%*=+:--=====++++*====--===+#+--=----=====+=---------=#****==+**+*++*=+*+++++==-
:###**#%#**+***%@%%%@%==*==-=----=++*+==+*+=::=*---=-===-:::--------===-=**=+**+++*++==+===--======-
-*******##*#****#@@%%%#**==--===------=-:--::+*=:-=------:----:--=------=+*=+**++=-----==---=======-
-***+++++***#**##%%%%#%%%#*=--=-=+++=-:::.. :##.:--:-------=-::--------=====--==::-+=--:=+=-*---===-
:++++**++++++**#%###%##%%@%%#***++=---=+::-:=*= .:--  .:------=----==--==-----:::--==-::.-=-======+-
:+++++**++++*#*+***###########%@@%%##++=-:::.:.:::-: .  .:..:::-+-:-==:-:--=+-:+:::.=*....--:++=-=+-
:***++**++++**+*+***##############%%@@@%%############+-:. .  ..::..  ..::-::- .-:.=. --::.=:.-==-=+-
:*++**+**++=+*++*####**+**#**++*******####*##%%#%%%%%%##**+=+++*=:..  :-.:..... .:+:  .:::+-:-=:===-
:****+****+***#*+**##*+==+++++++**+***#**##**######***###########***+-::  ......-:-.: :..:====-:=-=:
:*++++**#++*++*#*++=+++*+++++====++**++##**###******+++++****##******##*-::   ..-=-:-.:-::++=-:=+==:
:*+**+*#*+-=**#####+++++============++*#*+==+*++*+++++*********##***++*#*#*=:.  :+-=-::=+-++==++++=:
:+++***+===-=+***##*+***+=+=-==+=-==++++====++**####*+****#******#%###**+++##+===*+=-=+=++**#++====:
:+**+++++++=--===++****##**+++++===++===-==--=***#####+=*****#%#**%%##%%*+++####*##********#**#*+=+:
:**##****+++====+++****##***###******===-+*++++++**#*##+*###+++*#*++**%@#+***###***##*+#*####*##*+*:
:+++***#**+=+*++==+**++*+=+**#%%%#*##*+===++*##**+++***##*#%##+=++====+*###**##****#%#***##**###**+:
.==++***+++==-+#*+=++===++-*+**#******+++====++*#**++++*++++#####**+====+****###%%%**###*##%%#%###%:
.==++++===-==-:=**====+=++==+=+**##*++==+*++++++-=*##*=+***++***####*==++++**########%#**%%%#*###%%:
.=+**+*+==+=-==--==-+====---:-=-==+===-==+-=++*#*====+==+**#**++******==+==++++*###*#%##%#*#####***:
.=+*+++=*##+-+*+--===++==-:--=+===--=+-**--===++*#*---==+*#***+=+***++======++++*#**#%#*#######***#-
.=+===+=++===-=--+-=++==+**---=++++++*+*++*+=----=++=====+++*#**+=+***++++===+*+++***###**####%%%##-
.=+==-=-:-=-=+=+=**++++=+**+=+=====++*******+=-----=**#+=====+*#*==++++++**++++++=+**##%*+%#*#####@-
.==-==:---===+*+++++=====+*+++++++======++++**++==-===+=======++++==+++*****++***++++*****##%#**#*#-
.:---=-------===++===+==++*+**+++++++==***++****+++=++=++++++**++*++++++**+********+**+*+++*#******:
.----------===+=-----==++==++++++=+++++++++++++++++======+++++++++++++++++++++++++*++++=+++++*+++==:

Checking destination fit...

README and chat presets use printable ASCII. Unicode blocks and edge lines need matching font support; emoji can occupy different widths on another device. PNG keeps this browser's rendering, not another app's emoji style.

Sharing ASCII art in Telegram? Check monospace formatting and wrapping before sending. Ordinary chat formatting and Bot API HTML are different.

Edge detection

Edge Detection Only: 100 columns; rows = max(1, round(columns × source height / source width × 0.55)).

Edge Intensity: 1. Uses directional Unicode lines, not the selected character ramp.

Brightness 100%, contrast 100%, saturation 100%, hue 0, sepia 0%, inversion off. Dithering does not apply to this mode.

Open this recipe in the editor to keep this source, mode and settings. Browser resampling and fonts can differ from the built preview. Copy/TXT retain text; PNG uses black text on white at 12 px monospace, at least 1.2 line spacing and 20 px padding, independent of screen theme.

Open recipe in editor

Character Optimization matches local glyph shapes in 4x8 cells at 8 px monospace. Compare texture with Standard; it is not a universal quality improvement, and your display font does not change the matching font.

Character Optimization

Character Optimization: 100 columns; rows = max(1, round(columns × source height / source width × 0.55)).

Character ramp: @%#*+=-:. (including a final space).

Brightness 100%, contrast 100%, saturation 100%, hue 0, sepia 0%, inversion off. Dithering: none.

Open this recipe in the editor to keep this source, mode and settings. Browser resampling and fonts can differ from the built preview. Copy/TXT retain text; PNG uses black text on white at 12 px monospace, at least 1.2 line spacing and 20 px padding, independent of screen theme.

Open recipe in editor

Mosaic comparisons use 15 symbol columns, not the 100 columns of the character modes. The detailed recipe increases contrast to 150%; choose Coarse mosaic in the editor for the original five-column style.

Detailed emoji mosaic

Emoji Mosaic: sampling width 60, Emoji Size 4, squares set, transparent-cell symbol "⬜". Final columns = ceil(width / Emoji Size); rows depend on source aspect ratio.

Brightness 100%, contrast 150%, saturation 100%, hue 0, sepia 0%, inversion off. Dithering does not apply to this mode.

Open this recipe in the editor to keep this source, mode and settings. Browser resampling and fonts can differ from the built preview. Copy/TXT retain text; PNG uses black text on white at 12 px monospace, at least 1.2 line spacing and 20 px padding, independent of screen theme.

Open recipe in editor
Interested in Advertising?

Email the project contact with your advertising inquiry.

Need help with the tool? Project support and bug reports

Advertising inquiry

Want to create your own ASCII art?

Follow the image guide to choose settings, generate and export your result.