Photo Processing API

Process and analyze your images

API Overview
A collection of APIs for processing and analyzing images

Available Endpoints

  • /api/exif/extract - Extract metadata from images
  • /api/resize - Resize images by a multiplier factor (0.0-2.0)
  • /api/crop - Crop images using specified coordinates
  • /api/optimize - Optimize images with configurable quality and format

Features

  • Extract EXIF, IPTC, XMP and other metadata from images
  • Resize images by a multiplier factor (from 0.0 to 2.0)
  • Crop images using x, y, width, and height coordinates
  • Optimize images with configurable quality and output formats
  • Support for multiple input methods: file upload, URL, or base64-encoded images
  • Structured JSON responses
  • CORS enabled for cross-origin requests
  • Support for various image formats including JPEG, PNG, TIFF, HEIC, and RAW formats
Quick Examples

Extract EXIF Metadata

// Using fetch API
async function extractMetadata(imageFile) {
  const formData = new FormData();
  formData.append('file', imageFile);
  
  const response = await fetch('/api/exif/extract', {
    method: 'POST',
    body: formData
  });
  
  return await response.json();
}

Resize an Image

// Using fetch API
async function resizeImage(imageFile, multiplier) {
  const formData = new FormData();
  formData.append('file', imageFile);
  formData.append('multiplier', multiplier.toString());
  
  const response = await fetch('/api/resize', {
    method: 'POST',
    body: formData
  });
  
  return await response.json();
}

Crop an Image

// Using fetch API
async function cropImage(imageFile, x, y, width, height) {
  const formData = new FormData();
  formData.append('file', imageFile);
  formData.append('x', x.toString());
  formData.append('y', y.toString());
  formData.append('width', width.toString());
  formData.append('height', height.toString());
  
  const response = await fetch('/api/crop', {
    method: 'POST',
    body: formData
  });
  
  return await response.json();
}

Optimize an Image

// Using fetch API
async function optimizeImage(imageFile, quality = 80, format = 'webp') {
  const formData = new FormData();
  formData.append('file', imageFile);
  formData.append('quality', quality.toString());
  formData.append('format', format);
  
  const response = await fetch('/api/optimize', {
    method: 'POST',
    body: formData
  });
  
  return await response.json();
}