adpa-enterprise-framework-automation
Version:
Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe
175 lines • 5.01 kB
TypeScript
/**
* Adobe Photoshop API Client
*
* Provides integration with Adobe Photoshop APIs for automated
* image enhancement, batch processing, and visual optimization.
*/
export interface ImageProcessingRequest {
inputPath: string;
operations: ImageOperation[];
outputOptions: ImageOutputOptions;
metadata?: ImageMetadata;
}
export interface ImageOperation {
type: 'resize' | 'crop' | 'enhance' | 'filter' | 'branding' | 'composite' | 'text-overlay';
parameters: any;
order: number;
}
export interface ImageOutputOptions {
format: 'png' | 'jpg' | 'pdf' | 'psd' | 'tiff';
quality: number;
dpi: number;
colorSpace: 'RGB' | 'CMYK' | 'Grayscale';
compression?: 'none' | 'lzw' | 'zip' | 'jpeg';
}
export interface ImageMetadata {
title?: string;
description?: string;
author?: string;
copyright?: string;
keywords?: string[];
createdDate?: Date;
}
export interface ResizeOperation {
width?: number;
height?: number;
maintainAspectRatio: boolean;
resizeMethod: 'bicubic' | 'bilinear' | 'preserve-details';
}
export interface CropOperation {
x: number;
y: number;
width: number;
height: number;
units: 'pixels' | 'percent';
}
export interface EnhanceOperation {
autoLevels: boolean;
autoColor: boolean;
autoContrast: boolean;
sharpen: boolean;
noiseReduction: boolean;
brightness?: number;
contrast?: number;
}
export interface BrandingOperation {
logoPath?: string;
logoPosition: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center';
logoOpacity: number;
watermark?: {
text: string;
font: string;
size: number;
color: string;
opacity: number;
position: string;
};
border?: {
width: number;
color: string;
style: 'solid' | 'dashed' | 'dotted';
};
}
export interface TextOverlayOperation {
text: string;
font: string;
size: number;
color: string;
position: {
x: number;
y: number;
alignment: 'left' | 'center' | 'right';
};
background?: {
color: string;
opacity: number;
padding: number;
};
}
export interface CompositeOperation {
layers: CompositeLayer[];
blendMode: 'normal' | 'multiply' | 'screen' | 'overlay' | 'soft-light';
backgroundPath?: string;
}
export interface CompositeLayer {
imagePath: string;
position: {
x: number;
y: number;
};
opacity: number;
blendMode: string;
transform?: {
scaleX: number;
scaleY: number;
rotation: number;
};
}
export interface PhotoshopAsset {
id: string;
inputPath: string;
outputPath: string;
format: string;
dimensions: {
width: number;
height: number;
dpi: number;
};
fileSize: number;
operations: string[];
metadata: {
createdAt: Date;
processingTime: number;
operationsCount: number;
qualityScore: number;
};
previewUrl?: string;
}
export interface BatchProcessingOptions {
concurrency: number;
skipExisting: boolean;
onProgress?: (processed: number, total: number) => void;
onError?: (error: Error, file: string) => void;
}
export declare class PhotoshopAPIClient {
private authenticator;
private apiEndpoint;
private accessToken;
constructor();
/**
* Initialize the client and authenticate with Adobe Photoshop API
*/
initialize(): Promise<void>;
/**
* Process a single image with specified operations
*/
processImage(request: ImageProcessingRequest): Promise<PhotoshopAsset>;
/**
* Batch process multiple images with the same operations
*/
batchProcessImages(requests: ImageProcessingRequest[], options?: BatchProcessingOptions): Promise<PhotoshopAsset[]>;
/**
* Enhance screenshots and document images for professional presentation
*/
enhanceDocumentImages(imagePaths: string[], enhancementLevel?: 'minimal' | 'standard' | 'maximum'): Promise<PhotoshopAsset[]>;
/**
* Apply consistent branding to multiple images
*/
applyBrandingToImages(imagePaths: string[], branding: BrandingOperation): Promise<PhotoshopAsset[]>;
/**
* Create composite images for document headers, covers, etc.
*/
createComposite(backgroundPath: string, layers: CompositeLayer[], outputOptions: ImageOutputOptions): Promise<PhotoshopAsset>;
/**
* Optimize images for web and print output
*/
optimizeForOutput(imagePath: string, outputType: 'web' | 'print' | 'email'): Promise<PhotoshopAsset>;
private ensureAuthenticated;
private executeImageProcessing;
private getDocumentEnhancementOperations;
private getOptimizationOperations;
private getOptimizedOutputOptions;
private calculateQualityScore;
}
export declare const photoshopClient: PhotoshopAPIClient;
//# sourceMappingURL=photoshop-client.d.ts.map