From image-production
Extract embedded JPEG and PNG images from a PDF at their native resolution, without rasterizing. Use when a PDF is primarily a wrapper around photos or images and you want to recover them at full quality without the page rendering overhead.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin image-productionThis skill is limited to using the following tools:
Pull out JPEG and PNG objects embedded in a PDF using `pdfimages`. Extracts at native resolution without rasterizing the page. Different from `pdf-to-images` — this recovers the original embedded image files, not a rasterized page render.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Pull out JPEG and PNG objects embedded in a PDF using pdfimages. Extracts at native resolution without rasterizing the page. Different from pdf-to-images — this recovers the original embedded image files, not a rasterized page render.
command -v pdfimages || echo "pdfimages not installed — install with: sudo apt install poppler-utils"
Abort if missing.
file "<input.pdf>"
pdfimages -list "<input.pdf>"
The -list flag shows a summary of embedded images: page number, index, width, height, bits per component, color space, encoding. This helps set expectations (e.g., "3 JPEG images at 2400×3000px").
pdfimages -all "<input.pdf>" "<output-prefix>"
The -all flag extracts both the raw image stream (if JPEG, as .jpg; if PNG, as .png, etc.) plus any alternate-format versions.
Alternatives:
-j — extract JPEG objects only (faster if there are many PNG/PNG variants).-png — convert all images to PNG (may re-encode non-JPEG content; slower but lossy compression converted to lossless).Recommend -all unless the user specifies otherwise.
After extraction:
prefix-000.jpg, prefix-001.png, etc. (depends on PDF content).pdfimages extracts the raw embedded objects at the resolution they were embedded, not the page rendering resolution. For a photo book PDF with 2400×3000px JPEGs embedded, you get those 2400×3000px files directly — much faster and lossless compared to rasterizing the 8.5"×11" page at 300 DPI.pdfimages does not re-encode, the original embedded images may already be JPEG-compressed by the PDF creator. You cannot recover quality that was lost before embedding. Check output sizes and quality to verify.pdfimages preserves PNG, TIFF, and other formats within the PDF. The -all flag ensures you get them all. The -png flag is useful if you want everything as PNG but will re-encode and potentially change file size.pdfimages appends sequential suffixes (e.g., prefix-000.jpg, prefix-001.jpg). No files are overwritten.apt install poppler-utils.