Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Comics OCR for macOS

A macOS Automator application and Swift script that provide efficient OCR processing for text and comic images on macOS. This tool is designed to process individual comic image files or entire directories (with recursive support), allowing for easy and accurate extraction of text from images. The application supports customisable row splitting for optimised OCR on comics with multiple text blocks split over several rows.

Features

  • Batch Processing: Select individual images or entire folders for OCR.
  • Recursive Processing: Automatically process subdirectories when enabled.
  • Row Splitting: Specify the number of horizontal rows for OCR, allowing finer control over text recognition in multi-panel comics.
  • Row Defaults: Defaults to a single row for images with an aspect ratio close to 3.2 (e.g. three horizontal frames) or two rows for images with an aspect ratio close to 2.25 (e.g. two rows of 4 frames each).
  • Ignore vertical text: Vertical text such as the name of the cartoonist, contact details, and copyright information is often written vertically along the edge of the comics frames. While we do not condone removing this from the image, the purpose of this script it to capture the speech bubble text from comics.
  • Auto paragraphs: Each sentence (ending in a period, exclamation mark, or question mark) is separated by a blank line.

Download

You can either download the latest version from the releases page, or compile the app yourself using the instructions below.

Desktop App Usage

  1. Launch the App: Double-click the app icon.
  2. Select Files or Folders: Choose single or multiple files or whole folders for OCR processing. The app will create .txt files in the same directories as the images.

Command Line Usage

For command-line usage, run the compiled script directly:

# Process a single file
./macos-comic-ocr -f <file_path># Process a directory
./macos-comic-ocr -d <directory_path># Recursive processing
./macos-comic-ocr -d <directory_path> -r
# Specify rows for OCR
./macos-comic-ocr -f <file_path> -n 2

Parameters

The following command line parameters may be used:

-f <file_path>: Process a single file.
-d <directory_path>: Process all images in a specified directory.
-r: Enable recursive processing for subdirectories.
-n <num>: Specify the number of horizontal rows for OCR splitting, defaulting to automatic detection if not specified.

Compilation and Installation

  1. Compile the Swift Script:
swiftc macos-comic-ocr.swift -o macos-comic-ocr

If you intend only to use it from the command line, move the macos-comic-ocr executable to a convenient location, such as /usr/local/bin.

  1. Set Up the Automator Application:
  • Open Automator and create a new Application.
  • Add an Ask for Finder Items action to select files or folders.
  • Add a Run AppleScript action, and add the following script:
on run {input, parameters}
set appPath to POSIX path of (path to me)
return {appPath} & input
end run
  • Add a Run Shell Script action and set Shell to /bin/bash; Set Pass input to as arguments.
  • Use the following script to call macos-comic-ocr:
#!/bin/bash# Get the application path from the first argument
APP_PATH="$1"shift# Shift to the next argument, so $@ contains only the input items# Path to the embedded executable
OCR_EXECUTABLE="$APP_PATH/Contents/MacOS/macos-comic-ocr"# Initialize an array to store directories
dirs_to_open=()
# Loop through each selected itemforitemin"$@";doif [ -d"$item" ];then# Process as a directory"$OCR_EXECUTABLE" -d "$item"# Add the directory to the array
dirs_to_open+=("$item")
else# Process as a single file"$OCR_EXECUTABLE" -f "$item"# Get the directory containing the file
dir="$(dirname "$item")"# Add the directory to the array
dirs_to_open+=("$dir")
fidone# Remove duplicates from dirs_to_open
unique_dirs=($(printf "%s\n""${dirs_to_open[@]}"| sort -u))
# Open each directory in Finderfordirin"${unique_dirs[@]}";do
open "$dir"done
  • Save the Automator application with a descriptive name, like Comics OCR.
  1. Embed the Script and Icon:
  • Right-click your saved Automator app, select Show Package Contents.
  • Place macos-comic-ocr inside Contents/MacOS.
  • (Optional) Place your custom icon (AppIcon.icns) in Contents/Resources and set it in Info.plist:
<key>CFBundleIconFile</key>
<string>AppIcon</string>

License

This project is licensed under the GNU Public License.

About

Automator app and Swift script for efficient OCR processing of text and comic images using the macOS Vision framework, with support for batch and recursive folder processing.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Comics OCR for macOS

A macOS Automator application and Swift script that provide efficient OCR processing for text and comic images on macOS. This tool is designed to process individual comic image files or entire directories (with recursive support), allowing for easy and accurate extraction of text from images. The application supports customisable row splitting for optimised OCR on comics with multiple text blocks split over several rows.

Features

  • Batch Processing: Select individual images or entire folders for OCR.
  • Recursive Processing: Automatically process subdirectories when enabled.
  • Row Splitting: Specify the number of horizontal rows for OCR, allowing finer control over text recognition in multi-panel comics.
  • Row Defaults: Defaults to a single row for images with an aspect ratio close to 3.2 (e.g. three horizontal frames) or two rows for images with an aspect ratio close to 2.25 (e.g. two rows of 4 frames each).
  • Ignore vertical text: Vertical text such as the name of the cartoonist, contact details, and copyright information is often written vertically along the edge of the comics frames. While we do not condone removing this from the image, the purpose of this script it to capture the speech bubble text from comics.
  • Auto paragraphs: Each sentence (ending in a period, exclamation mark, or question mark) is separated by a blank line.

Download

You can either download the latest version from the releases page, or compile the app yourself using the instructions below.

Desktop App Usage

  1. Launch the App: Double-click the app icon.
  2. Select Files or Folders: Choose single or multiple files or whole folders for OCR processing. The app will create .txt files in the same directories as the images.

Command Line Usage

For command-line usage, run the compiled script directly:

# Process a single file
./macos-comic-ocr -f <file_path># Process a directory
./macos-comic-ocr -d <directory_path># Recursive processing
./macos-comic-ocr -d <directory_path> -r
# Specify rows for OCR
./macos-comic-ocr -f <file_path> -n 2

Parameters

The following command line parameters may be used:

-f <file_path>: Process a single file.
-d <directory_path>: Process all images in a specified directory.
-r: Enable recursive processing for subdirectories.
-n <num>: Specify the number of horizontal rows for OCR splitting, defaulting to automatic detection if not specified.

Compilation and Installation

  1. Compile the Swift Script:
swiftc macos-comic-ocr.swift -o macos-comic-ocr

If you intend only to use it from the command line, move the macos-comic-ocr executable to a convenient location, such as /usr/local/bin.

  1. Set Up the Automator Application:
  • Open Automator and create a new Application.
  • Add an Ask for Finder Items action to select files or folders.
  • Add a Run AppleScript action, and add the following script:
on run {input, parameters}
set appPath to POSIX path of (path to me)
return {appPath} & input
end run
  • Add a Run Shell Script action and set Shell to /bin/bash; Set Pass input to as arguments.
  • Use the following script to call macos-comic-ocr:
#!/bin/bash# Get the application path from the first argument
APP_PATH="$1"shift# Shift to the next argument, so $@ contains only the input items# Path to the embedded executable
OCR_EXECUTABLE="$APP_PATH/Contents/MacOS/macos-comic-ocr"# Initialize an array to store directories
dirs_to_open=()
# Loop through each selected itemforitemin"$@";doif [ -d"$item" ];then# Process as a directory"$OCR_EXECUTABLE" -d "$item"# Add the directory to the array
dirs_to_open+=("$item")
else# Process as a single file"$OCR_EXECUTABLE" -f "$item"# Get the directory containing the file
dir="$(dirname "$item")"# Add the directory to the array
dirs_to_open+=("$dir")
fidone# Remove duplicates from dirs_to_open
unique_dirs=($(printf "%s\n""${dirs_to_open[@]}"| sort -u))
# Open each directory in Finderfordirin"${unique_dirs[@]}";do
open "$dir"done
  • Save the Automator application with a descriptive name, like Comics OCR.
  1. Embed the Script and Icon:
  • Right-click your saved Automator app, select Show Package Contents.
  • Place macos-comic-ocr inside Contents/MacOS.
  • (Optional) Place your custom icon (AppIcon.icns) in Contents/Resources and set it in Info.plist:
<key>CFBundleIconFile</key>
<string>AppIcon</string>

License

This project is licensed under the GNU Public License.

About

Automator app and Swift script for efficient OCR processing of text and comic images using the macOS Vision framework, with support for batch and recursive folder processing.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Comics OCR for macOS

A macOS Automator application and Swift script that provide efficient OCR processing for text and comic images on macOS. This tool is designed to process individual comic image files or entire directories (with recursive support), allowing for easy and accurate extraction of text from images. The application supports customisable row splitting for optimised OCR on comics with multiple text blocks split over several rows.

Features

  • Batch Processing: Select individual images or entire folders for OCR.
  • Recursive Processing: Automatically process subdirectories when enabled.
  • Row Splitting: Specify the number of horizontal rows for OCR, allowing finer control over text recognition in multi-panel comics.
  • Row Defaults: Defaults to a single row for images with an aspect ratio close to 3.2 (e.g. three horizontal frames) or two rows for images with an aspect ratio close to 2.25 (e.g. two rows of 4 frames each).
  • Ignore vertical text: Vertical text such as the name of the cartoonist, contact details, and copyright information is often written vertically along the edge of the comics frames. While we do not condone removing this from the image, the purpose of this script it to capture the speech bubble text from comics.
  • Auto paragraphs: Each sentence (ending in a period, exclamation mark, or question mark) is separated by a blank line.

Download

You can either download the latest version from the releases page, or compile the app yourself using the instructions below.

Desktop App Usage

  1. Launch the App: Double-click the app icon.
  2. Select Files or Folders: Choose single or multiple files or whole folders for OCR processing. The app will create .txt files in the same directories as the images.

Command Line Usage

For command-line usage, run the compiled script directly:

# Process a single file
./macos-comic-ocr -f <file_path># Process a directory
./macos-comic-ocr -d <directory_path># Recursive processing
./macos-comic-ocr -d <directory_path> -r
# Specify rows for OCR
./macos-comic-ocr -f <file_path> -n 2

Parameters

The following command line parameters may be used:

-f <file_path>: Process a single file.
-d <directory_path>: Process all images in a specified directory.
-r: Enable recursive processing for subdirectories.
-n <num>: Specify the number of horizontal rows for OCR splitting, defaulting to automatic detection if not specified.

Compilation and Installation

  1. Compile the Swift Script:
swiftc macos-comic-ocr.swift -o macos-comic-ocr

If you intend only to use it from the command line, move the macos-comic-ocr executable to a convenient location, such as /usr/local/bin.

  1. Set Up the Automator Application:
  • Open Automator and create a new Application.
  • Add an Ask for Finder Items action to select files or folders.
  • Add a Run AppleScript action, and add the following script:
on run {input, parameters}
set appPath to POSIX path of (path to me)
return {appPath} & input
end run
  • Add a Run Shell Script action and set Shell to /bin/bash; Set Pass input to as arguments.
  • Use the following script to call macos-comic-ocr:
#!/bin/bash# Get the application path from the first argument
APP_PATH="$1"shift# Shift to the next argument, so $@ contains only the input items# Path to the embedded executable
OCR_EXECUTABLE="$APP_PATH/Contents/MacOS/macos-comic-ocr"# Initialize an array to store directories
dirs_to_open=()
# Loop through each selected itemforitemin"$@";doif [ -d"$item" ];then# Process as a directory"$OCR_EXECUTABLE" -d "$item"# Add the directory to the array
dirs_to_open+=("$item")
else# Process as a single file"$OCR_EXECUTABLE" -f "$item"# Get the directory containing the file
dir="$(dirname "$item")"# Add the directory to the array
dirs_to_open+=("$dir")
fidone# Remove duplicates from dirs_to_open
unique_dirs=($(printf "%s\n""${dirs_to_open[@]}"| sort -u))
# Open each directory in Finderfordirin"${unique_dirs[@]}";do
open "$dir"done
  • Save the Automator application with a descriptive name, like Comics OCR.
  1. Embed the Script and Icon:
  • Right-click your saved Automator app, select Show Package Contents.
  • Place macos-comic-ocr inside Contents/MacOS.
  • (Optional) Place your custom icon (AppIcon.icns) in Contents/Resources and set it in Info.plist:
<key>CFBundleIconFile</key>
<string>AppIcon</string>

License

This project is licensed under the GNU Public License.

About

Automator app and Swift script for efficient OCR processing of text and comic images using the macOS Vision framework, with support for batch and recursive folder processing.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Comics OCR for macOS

A macOS Automator application and Swift script that provide efficient OCR processing for text and comic images on macOS. This tool is designed to process individual comic image files or entire directories (with recursive support), allowing for easy and accurate extraction of text from images. The application supports customisable row splitting for optimised OCR on comics with multiple text blocks split over several rows.

Features

  • Batch Processing: Select individual images or entire folders for OCR.
  • Recursive Processing: Automatically process subdirectories when enabled.
  • Row Splitting: Specify the number of horizontal rows for OCR, allowing finer control over text recognition in multi-panel comics.
  • Row Defaults: Defaults to a single row for images with an aspect ratio close to 3.2 (e.g. three horizontal frames) or two rows for images with an aspect ratio close to 2.25 (e.g. two rows of 4 frames each).
  • Ignore vertical text: Vertical text such as the name of the cartoonist, contact details, and copyright information is often written vertically along the edge of the comics frames. While we do not condone removing this from the image, the purpose of this script it to capture the speech bubble text from comics.
  • Auto paragraphs: Each sentence (ending in a period, exclamation mark, or question mark) is separated by a blank line.

Download

You can either download the latest version from the releases page, or compile the app yourself using the instructions below.

Desktop App Usage

  1. Launch the App: Double-click the app icon.
  2. Select Files or Folders: Choose single or multiple files or whole folders for OCR processing. The app will create .txt files in the same directories as the images.

Command Line Usage

For command-line usage, run the compiled script directly:

# Process a single file
./macos-comic-ocr -f <file_path># Process a directory
./macos-comic-ocr -d <directory_path># Recursive processing
./macos-comic-ocr -d <directory_path> -r
# Specify rows for OCR
./macos-comic-ocr -f <file_path> -n 2

Parameters

The following command line parameters may be used:

-f <file_path>: Process a single file.
-d <directory_path>: Process all images in a specified directory.
-r: Enable recursive processing for subdirectories.
-n <num>: Specify the number of horizontal rows for OCR splitting, defaulting to automatic detection if not specified.

Compilation and Installation

  1. Compile the Swift Script:
swiftc macos-comic-ocr.swift -o macos-comic-ocr

If you intend only to use it from the command line, move the macos-comic-ocr executable to a convenient location, such as /usr/local/bin.

  1. Set Up the Automator Application:
  • Open Automator and create a new Application.
  • Add an Ask for Finder Items action to select files or folders.
  • Add a Run AppleScript action, and add the following script:
on run {input, parameters}
set appPath to POSIX path of (path to me)
return {appPath} & input
end run
  • Add a Run Shell Script action and set Shell to /bin/bash; Set Pass input to as arguments.
  • Use the following script to call macos-comic-ocr:
#!/bin/bash# Get the application path from the first argument
APP_PATH="$1"shift# Shift to the next argument, so $@ contains only the input items# Path to the embedded executable
OCR_EXECUTABLE="$APP_PATH/Contents/MacOS/macos-comic-ocr"# Initialize an array to store directories
dirs_to_open=()
# Loop through each selected itemforitemin"$@";doif [ -d"$item" ];then# Process as a directory"$OCR_EXECUTABLE" -d "$item"# Add the directory to the array
dirs_to_open+=("$item")
else# Process as a single file"$OCR_EXECUTABLE" -f "$item"# Get the directory containing the file
dir="$(dirname "$item")"# Add the directory to the array
dirs_to_open+=("$dir")
fidone# Remove duplicates from dirs_to_open
unique_dirs=($(printf "%s\n""${dirs_to_open[@]}"| sort -u))
# Open each directory in Finderfordirin"${unique_dirs[@]}";do
open "$dir"done
  • Save the Automator application with a descriptive name, like Comics OCR.
  1. Embed the Script and Icon:
  • Right-click your saved Automator app, select Show Package Contents.
  • Place macos-comic-ocr inside Contents/MacOS.
  • (Optional) Place your custom icon (AppIcon.icns) in Contents/Resources and set it in Info.plist:
<key>CFBundleIconFile</key>
<string>AppIcon</string>

License

This project is licensed under the GNU Public License.

About

Automator app and Swift script for efficient OCR processing of text and comic images using the macOS Vision framework, with support for batch and recursive folder processing.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Comics OCR for macOS

A macOS Automator application and Swift script that provide efficient OCR processing for text and comic images on macOS. This tool is designed to process individual comic image files or entire directories (with recursive support), allowing for easy and accurate extraction of text from images. The application supports customisable row splitting for optimised OCR on comics with multiple text blocks split over several rows.

Features

  • Batch Processing: Select individual images or entire folders for OCR.
  • Recursive Processing: Automatically process subdirectories when enabled.
  • Row Splitting: Specify the number of horizontal rows for OCR, allowing finer control over text recognition in multi-panel comics.
  • Row Defaults: Defaults to a single row for images with an aspect ratio close to 3.2 (e.g. three horizontal frames) or two rows for images with an aspect ratio close to 2.25 (e.g. two rows of 4 frames each).
  • Ignore vertical text: Vertical text such as the name of the cartoonist, contact details, and copyright information is often written vertically along the edge of the comics frames. While we do not condone removing this from the image, the purpose of this script it to capture the speech bubble text from comics.
  • Auto paragraphs: Each sentence (ending in a period, exclamation mark, or question mark) is separated by a blank line.

Download

You can either download the latest version from the releases page, or compile the app yourself using the instructions below.

Desktop App Usage

  1. Launch the App: Double-click the app icon.
  2. Select Files or Folders: Choose single or multiple files or whole folders for OCR processing. The app will create .txt files in the same directories as the images.

Command Line Usage

For command-line usage, run the compiled script directly:

# Process a single file
./macos-comic-ocr -f <file_path># Process a directory
./macos-comic-ocr -d <directory_path># Recursive processing
./macos-comic-ocr -d <directory_path> -r
# Specify rows for OCR
./macos-comic-ocr -f <file_path> -n 2

Parameters

The following command line parameters may be used:

-f <file_path>: Process a single file.
-d <directory_path>: Process all images in a specified directory.
-r: Enable recursive processing for subdirectories.
-n <num>: Specify the number of horizontal rows for OCR splitting, defaulting to automatic detection if not specified.

Compilation and Installation

  1. Compile the Swift Script:
swiftc macos-comic-ocr.swift -o macos-comic-ocr

If you intend only to use it from the command line, move the macos-comic-ocr executable to a convenient location, such as /usr/local/bin.

  1. Set Up the Automator Application:
  • Open Automator and create a new Application.
  • Add an Ask for Finder Items action to select files or folders.
  • Add a Run AppleScript action, and add the following script:
on run {input, parameters}
set appPath to POSIX path of (path to me)
return {appPath} & input
end run
  • Add a Run Shell Script action and set Shell to /bin/bash; Set Pass input to as arguments.
  • Use the following script to call macos-comic-ocr:
#!/bin/bash# Get the application path from the first argument
APP_PATH="$1"shift# Shift to the next argument, so $@ contains only the input items# Path to the embedded executable
OCR_EXECUTABLE="$APP_PATH/Contents/MacOS/macos-comic-ocr"# Initialize an array to store directories
dirs_to_open=()
# Loop through each selected itemforitemin"$@";doif [ -d"$item" ];then# Process as a directory"$OCR_EXECUTABLE" -d "$item"# Add the directory to the array
dirs_to_open+=("$item")
else# Process as a single file"$OCR_EXECUTABLE" -f "$item"# Get the directory containing the file
dir="$(dirname "$item")"# Add the directory to the array
dirs_to_open+=("$dir")
fidone# Remove duplicates from dirs_to_open
unique_dirs=($(printf "%s\n""${dirs_to_open[@]}"| sort -u))
# Open each directory in Finderfordirin"${unique_dirs[@]}";do
open "$dir"done
  • Save the Automator application with a descriptive name, like Comics OCR.
  1. Embed the Script and Icon:
  • Right-click your saved Automator app, select Show Package Contents.
  • Place macos-comic-ocr inside Contents/MacOS.
  • (Optional) Place your custom icon (AppIcon.icns) in Contents/Resources and set it in Info.plist:
<key>CFBundleIconFile</key>
<string>AppIcon</string>

License

This project is licensed under the GNU Public License.

About

Automator app and Swift script for efficient OCR processing of text and comic images using the macOS Vision framework, with support for batch and recursive folder processing.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Comics OCR for macOS

A macOS Automator application and Swift script that provide efficient OCR processing for text and comic images on macOS. This tool is designed to process individual comic image files or entire directories (with recursive support), allowing for easy and accurate extraction of text from images. The application supports customisable row splitting for optimised OCR on comics with multiple text blocks split over several rows.

Features

  • Batch Processing: Select individual images or entire folders for OCR.
  • Recursive Processing: Automatically process subdirectories when enabled.
  • Row Splitting: Specify the number of horizontal rows for OCR, allowing finer control over text recognition in multi-panel comics.
  • Row Defaults: Defaults to a single row for images with an aspect ratio close to 3.2 (e.g. three horizontal frames) or two rows for images with an aspect ratio close to 2.25 (e.g. two rows of 4 frames each).
  • Ignore vertical text: Vertical text such as the name of the cartoonist, contact details, and copyright information is often written vertically along the edge of the comics frames. While we do not condone removing this from the image, the purpose of this script it to capture the speech bubble text from comics.
  • Auto paragraphs: Each sentence (ending in a period, exclamation mark, or question mark) is separated by a blank line.

Download

You can either download the latest version from the releases page, or compile the app yourself using the instructions below.

Desktop App Usage

  1. Launch the App: Double-click the app icon.
  2. Select Files or Folders: Choose single or multiple files or whole folders for OCR processing. The app will create .txt files in the same directories as the images.

Command Line Usage

For command-line usage, run the compiled script directly:

# Process a single file
./macos-comic-ocr -f <file_path># Process a directory
./macos-comic-ocr -d <directory_path># Recursive processing
./macos-comic-ocr -d <directory_path> -r
# Specify rows for OCR
./macos-comic-ocr -f <file_path> -n 2

Parameters

The following command line parameters may be used:

-f <file_path>: Process a single file.
-d <directory_path>: Process all images in a specified directory.
-r: Enable recursive processing for subdirectories.
-n <num>: Specify the number of horizontal rows for OCR splitting, defaulting to automatic detection if not specified.

Compilation and Installation

  1. Compile the Swift Script:
swiftc macos-comic-ocr.swift -o macos-comic-ocr

If you intend only to use it from the command line, move the macos-comic-ocr executable to a convenient location, such as /usr/local/bin.

  1. Set Up the Automator Application:
  • Open Automator and create a new Application.
  • Add an Ask for Finder Items action to select files or folders.
  • Add a Run AppleScript action, and add the following script:
on run {input, parameters}
set appPath to POSIX path of (path to me)
return {appPath} & input
end run
  • Add a Run Shell Script action and set Shell to /bin/bash; Set Pass input to as arguments.
  • Use the following script to call macos-comic-ocr:
#!/bin/bash# Get the application path from the first argument
APP_PATH="$1"shift# Shift to the next argument, so $@ contains only the input items# Path to the embedded executable
OCR_EXECUTABLE="$APP_PATH/Contents/MacOS/macos-comic-ocr"# Initialize an array to store directories
dirs_to_open=()
# Loop through each selected itemforitemin"$@";doif [ -d"$item" ];then# Process as a directory"$OCR_EXECUTABLE" -d "$item"# Add the directory to the array
dirs_to_open+=("$item")
else# Process as a single file"$OCR_EXECUTABLE" -f "$item"# Get the directory containing the file
dir="$(dirname "$item")"# Add the directory to the array
dirs_to_open+=("$dir")
fidone# Remove duplicates from dirs_to_open
unique_dirs=($(printf "%s\n""${dirs_to_open[@]}"| sort -u))
# Open each directory in Finderfordirin"${unique_dirs[@]}";do
open "$dir"done
  • Save the Automator application with a descriptive name, like Comics OCR.
  1. Embed the Script and Icon:
  • Right-click your saved Automator app, select Show Package Contents.
  • Place macos-comic-ocr inside Contents/MacOS.
  • (Optional) Place your custom icon (AppIcon.icns) in Contents/Resources and set it in Info.plist:
<key>CFBundleIconFile</key>
<string>AppIcon</string>

License

This project is licensed under the GNU Public License.

About

Automator app and Swift script for efficient OCR processing of text and comic images using the macOS Vision framework, with support for batch and recursive folder processing.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Comics OCR for macOS

A macOS Automator application and Swift script that provide efficient OCR processing for text and comic images on macOS. This tool is designed to process individual comic image files or entire directories (with recursive support), allowing for easy and accurate extraction of text from images. The application supports customisable row splitting for optimised OCR on comics with multiple text blocks split over several rows.

Features

  • Batch Processing: Select individual images or entire folders for OCR.
  • Recursive Processing: Automatically process subdirectories when enabled.
  • Row Splitting: Specify the number of horizontal rows for OCR, allowing finer control over text recognition in multi-panel comics.
  • Row Defaults: Defaults to a single row for images with an aspect ratio close to 3.2 (e.g. three horizontal frames) or two rows for images with an aspect ratio close to 2.25 (e.g. two rows of 4 frames each).
  • Ignore vertical text: Vertical text such as the name of the cartoonist, contact details, and copyright information is often written vertically along the edge of the comics frames. While we do not condone removing this from the image, the purpose of this script it to capture the speech bubble text from comics.
  • Auto paragraphs: Each sentence (ending in a period, exclamation mark, or question mark) is separated by a blank line.

Download

You can either download the latest version from the releases page, or compile the app yourself using the instructions below.

Desktop App Usage

  1. Launch the App: Double-click the app icon.
  2. Select Files or Folders: Choose single or multiple files or whole folders for OCR processing. The app will create .txt files in the same directories as the images.

Command Line Usage

For command-line usage, run the compiled script directly:

# Process a single file
./macos-comic-ocr -f <file_path># Process a directory
./macos-comic-ocr -d <directory_path># Recursive processing
./macos-comic-ocr -d <directory_path> -r
# Specify rows for OCR
./macos-comic-ocr -f <file_path> -n 2

Parameters

The following command line parameters may be used:

-f <file_path>: Process a single file.
-d <directory_path>: Process all images in a specified directory.
-r: Enable recursive processing for subdirectories.
-n <num>: Specify the number of horizontal rows for OCR splitting, defaulting to automatic detection if not specified.

Compilation and Installation

  1. Compile the Swift Script:
swiftc macos-comic-ocr.swift -o macos-comic-ocr

If you intend only to use it from the command line, move the macos-comic-ocr executable to a convenient location, such as /usr/local/bin.

  1. Set Up the Automator Application:
  • Open Automator and create a new Application.
  • Add an Ask for Finder Items action to select files or folders.
  • Add a Run AppleScript action, and add the following script:
on run {input, parameters}
set appPath to POSIX path of (path to me)
return {appPath} & input
end run
  • Add a Run Shell Script action and set Shell to /bin/bash; Set Pass input to as arguments.
  • Use the following script to call macos-comic-ocr:
#!/bin/bash# Get the application path from the first argument
APP_PATH="$1"shift# Shift to the next argument, so $@ contains only the input items# Path to the embedded executable
OCR_EXECUTABLE="$APP_PATH/Contents/MacOS/macos-comic-ocr"# Initialize an array to store directories
dirs_to_open=()
# Loop through each selected itemforitemin"$@";doif [ -d"$item" ];then# Process as a directory"$OCR_EXECUTABLE" -d "$item"# Add the directory to the array
dirs_to_open+=("$item")
else# Process as a single file"$OCR_EXECUTABLE" -f "$item"# Get the directory containing the file
dir="$(dirname "$item")"# Add the directory to the array
dirs_to_open+=("$dir")
fidone# Remove duplicates from dirs_to_open
unique_dirs=($(printf "%s\n""${dirs_to_open[@]}"| sort -u))
# Open each directory in Finderfordirin"${unique_dirs[@]}";do
open "$dir"done
  • Save the Automator application with a descriptive name, like Comics OCR.
  1. Embed the Script and Icon:
  • Right-click your saved Automator app, select Show Package Contents.
  • Place macos-comic-ocr inside Contents/MacOS.
  • (Optional) Place your custom icon (AppIcon.icns) in Contents/Resources and set it in Info.plist:
<key>CFBundleIconFile</key>
<string>AppIcon</string>

License

This project is licensed under the GNU Public License.

About

Automator app and Swift script for efficient OCR processing of text and comic images using the macOS Vision framework, with support for batch and recursive folder processing.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Comics OCR for macOS

A macOS Automator application and Swift script that provide efficient OCR processing for text and comic images on macOS. This tool is designed to process individual comic image files or entire directories (with recursive support), allowing for easy and accurate extraction of text from images. The application supports customisable row splitting for optimised OCR on comics with multiple text blocks split over several rows.

Features

  • Batch Processing: Select individual images or entire folders for OCR.
  • Recursive Processing: Automatically process subdirectories when enabled.
  • Row Splitting: Specify the number of horizontal rows for OCR, allowing finer control over text recognition in multi-panel comics.
  • Row Defaults: Defaults to a single row for images with an aspect ratio close to 3.2 (e.g. three horizontal frames) or two rows for images with an aspect ratio close to 2.25 (e.g. two rows of 4 frames each).
  • Ignore vertical text: Vertical text such as the name of the cartoonist, contact details, and copyright information is often written vertically along the edge of the comics frames. While we do not condone removing this from the image, the purpose of this script it to capture the speech bubble text from comics.
  • Auto paragraphs: Each sentence (ending in a period, exclamation mark, or question mark) is separated by a blank line.

Download

You can either download the latest version from the releases page, or compile the app yourself using the instructions below.

Desktop App Usage

  1. Launch the App: Double-click the app icon.
  2. Select Files or Folders: Choose single or multiple files or whole folders for OCR processing. The app will create .txt files in the same directories as the images.

Command Line Usage

For command-line usage, run the compiled script directly:

# Process a single file
./macos-comic-ocr -f <file_path># Process a directory
./macos-comic-ocr -d <directory_path># Recursive processing
./macos-comic-ocr -d <directory_path> -r
# Specify rows for OCR
./macos-comic-ocr -f <file_path> -n 2

Parameters

The following command line parameters may be used:

-f <file_path>: Process a single file.
-d <directory_path>: Process all images in a specified directory.
-r: Enable recursive processing for subdirectories.
-n <num>: Specify the number of horizontal rows for OCR splitting, defaulting to automatic detection if not specified.

Compilation and Installation

  1. Compile the Swift Script:
swiftc macos-comic-ocr.swift -o macos-comic-ocr

If you intend only to use it from the command line, move the macos-comic-ocr executable to a convenient location, such as /usr/local/bin.

  1. Set Up the Automator Application:
  • Open Automator and create a new Application.
  • Add an Ask for Finder Items action to select files or folders.
  • Add a Run AppleScript action, and add the following script:
on run {input, parameters}
set appPath to POSIX path of (path to me)
return {appPath} & input
end run
  • Add a Run Shell Script action and set Shell to /bin/bash; Set Pass input to as arguments.
  • Use the following script to call macos-comic-ocr:
#!/bin/bash# Get the application path from the first argument
APP_PATH="$1"shift# Shift to the next argument, so $@ contains only the input items# Path to the embedded executable
OCR_EXECUTABLE="$APP_PATH/Contents/MacOS/macos-comic-ocr"# Initialize an array to store directories
dirs_to_open=()
# Loop through each selected itemforitemin"$@";doif [ -d"$item" ];then# Process as a directory"$OCR_EXECUTABLE" -d "$item"# Add the directory to the array
dirs_to_open+=("$item")
else# Process as a single file"$OCR_EXECUTABLE" -f "$item"# Get the directory containing the file
dir="$(dirname "$item")"# Add the directory to the array
dirs_to_open+=("$dir")
fidone# Remove duplicates from dirs_to_open
unique_dirs=($(printf "%s\n""${dirs_to_open[@]}"| sort -u))
# Open each directory in Finderfordirin"${unique_dirs[@]}";do
open "$dir"done
  • Save the Automator application with a descriptive name, like Comics OCR.
  1. Embed the Script and Icon:
  • Right-click your saved Automator app, select Show Package Contents.
  • Place macos-comic-ocr inside Contents/MacOS.
  • (Optional) Place your custom icon (AppIcon.icns) in Contents/Resources and set it in Info.plist:
<key>CFBundleIconFile</key>
<string>AppIcon</string>

License

This project is licensed under the GNU Public License.

About

Automator app and Swift script for efficient OCR processing of text and comic images using the macOS Vision framework, with support for batch and recursive folder processing.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages