How to extract text from an image via the CLI
- Published at
- Updated at
- Reading time
- 1min
I came across a post by Simon Willison that described how to use the tesseract CLI command to extract text from an image. I took the opportunity to fiddle around with some shell scripting and added an extract-text-from-image command to my dotfiles. It uses tesseract to analyze an image, creates a txt file with the embedded text, copies the ebedded text to the clipboard, and deletes the txt file again.
The tesseract command was available on my machine. If it's not available on yours, install it via your favorite package manager.
Find extract-image-from-texts last iteration below:
function extract-text-from-image() {
if [ $# -eq 0 ]; then
echo "Please specify the file you want to scan.";
echo " -> extract-text-from-image /some/path/image.png";
return 1;
fi
TARGET_DIR=$(dirname "$1");
FILENAME=$(basename -- "$1");
FILENAME_WITHOUT_EXTENSION="${FILENAME%.*}";
tesseract "$1" "$TARGET_DIR/$FILENAME_WITHOUT_EXTENSION" -l eng txt || return 1;
pbcopy < "$TARGET_DIR/$FILENAME_WITHOUT_EXTENSION.txt";
rm "$TARGET_DIR/$FILENAME_WITHOUT_EXTENSION.txt";
echo "🎉 Text copied to clipboard!";
}
I don't think I'll use this command daily, but I'm amazed by this piece of CLI magic.
Edit: Wesley Martin shared the macOCR project with me and it's also worth a look!
Join 6.1k readers and learn something new every week with Web Weekly.
