Photo Album Splitter API – Printed Photo Extractor
Pricing
$20.00 / 1,000 extracted photos
Photo Album Splitter API – Printed Photo Extractor
Detect and crop individual printed photos from album page scans or camera shots. Returns perspective-corrected image files, metadata, and optional ZIP output.
Pricing
$20.00 / 1,000 extracted photos
Rating
0.0
(0)
Developer
Michael Beetz
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Extract individual printed photos from album page scans or camera shots. The Actor detects separate print rectangles, corrects perspective, optionally trims light paper borders, and returns each photo as a downloadable image with structured metadata.
What it is useful for
Use this Actor when one scan or phone photo contains several printed photos and you want separate files automatically.
Common workflows:
- Splitting old family album pages into individual image files
- Preparing genealogy or archive scans for cataloging
- Cropping several printed photos from one flatbed scanner image
- Processing camera shots of prints laid out on a table
- Preparing images before restoration, colorization, or upscaling tools
- Building automated digitization pipelines through the Apify API
How it works
- The Actor downloads each URL from
imageUrls. - It detects likely printed-photo rectangles using edge and surface detection.
- It removes obvious page/background false positives.
- It perspective-crops every detected photo.
- If enabled, it trims neutral/off-white print borders.
- It saves every crop as a separate image file.
- It writes metadata rows to the dataset and optionally creates a ZIP archive.
Input example
Try the public demo image below or replace the URL with your own album page scan or camera shot:
Demo input image:
https://api.apify.com/v2/key-value-stores/2qL0GBPUDleSGv96Q/records/synthetic-vintage-album-page.png
{"imageUrls": ["https://api.apify.com/v2/key-value-stores/2qL0GBPUDleSGv96Q/records/synthetic-vintage-album-page.png"],"sensitivity": 0.55,"minAreaFraction": 0.008,"maxImages": 20,"maxCropsPerImage": 30,"trimBorders": true,"createZip": true,"outputFormat": "jpg"}
Input fields
| Field | Default | Description |
|---|---|---|
imageUrls | required | Public URLs of album page scans or camera shots containing one or more printed photos. |
sensitivity | 0.55 | Higher values detect weaker borders; lower values are stricter. Try 0.45–0.7 for most images. |
minAreaFraction | 0.008 | Smallest accepted photo area as a fraction of the source image. Increase this to ignore tiny false positives. |
maxImages | 20 | Maximum number of source images to process in one run. |
maxCropsPerImage | 30 | Maximum number of crops exported from each source image. |
trimBorders | true | Try to remove off-white print borders after perspective cropping. |
createZip | true | Create extracted_photos.zip with all exported crops. |
outputFormat | jpg | Output crop format: jpg or png. |
Output
Each extracted photo is saved in the default key-value store. The default dataset receives one metadata item per crop:
{"ok": true,"sourceImage": "https://api.apify.com/v2/key-value-stores/2qL0GBPUDleSGv96Q/records/synthetic-vintage-album-page.png","sourceImageIndex": 1,"cropIndex": 1,"detectedCount": 4,"exportedCountForImage": 4,"confidence": 0.91,"bbox": { "x": 120, "y": 80, "width": 640, "height": 430 },"width": 620,"height": 410,"storageKey": "image_001_crop_001.jpg","cropUrl": "https://api.apify.com/v2/key-value-stores/.../records/image_001_crop_001.jpg"}
When createZip is enabled, the key-value store also contains:
extracted_photos.zip
The dataset includes a final summary row with total input count, total exported crops, and the ZIP URL.
Pricing
This Actor uses Apify pay-per-event pricing. The chargeable event is:
photo_extracted
You are charged once per successfully exported photo crop, according to the price shown in the Apify pricing panel. Images with no detected photos do not create photo_extracted events.
Tips for best results
- Use clear, reasonably high-resolution scans or camera shots.
- Keep visible spacing between printed photos where possible.
- Avoid heavy overlap, glare, reflections, and very dark shadows.
- Place prints on a background that contrasts with the photo edges.
- If too many false positives appear, lower
sensitivityor raiseminAreaFraction. - If faint photos are missed, raise
sensitivityslightly.
Limitations
- The Actor extracts and crops photos; it does not restore, colorize, upscale, or deblur them.
- Heavy glare, overlapping photos, or photos with no contrast against the page can reduce detection quality.
- Very large images may take longer and can be limited by the configured input limits.
API usage
You can run the Actor from Apify Console, the Apify API, schedules, webhooks, or integrations. Outputs are available as both structured JSON metadata and downloadable image files.