- Introduced a comprehensive photo processing pipeline that integrates various processing steps including thumbnail generation, EXIF data extraction, and tone analysis.
- Modularized the photo handling logic into distinct files for better organization and maintainability.
- Added support for Live Photo detection and processing.
- Implemented a global logger system to streamline logging across different processing stages.
- Enhanced caching mechanisms for reusing existing data, improving performance and efficiency.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new HistogramChart component to visualize tone analysis data.
- Enhanced the ExifPanel to display tone analysis results, including brightness, contrast, shadow, and highlight ratios.
- Updated the formatExifData function to support tone analysis data.
- Implemented histogram compression and decompression logic for efficient data handling.
- Added localization support for new histogram-related terms in multiple languages.
Signed-off-by: Innei <tukon479@gmail.com>
- Streamlined the handling of deleted photos by directly passing the manifest to the `handleDeletedPhotos` function.
- Removed unnecessary options checks and logging parameters from the `saveManifest` function, enhancing clarity and reducing complexity.
- Updated thumbnail deletion logic to ensure thumbnails not present in the manifest are removed efficiently.
Signed-off-by: Innei <tukon479@gmail.com>
- Eliminated dynamic imports for StorageManager and builderConfig within the worker process.
- Removed the initialization of the storage manager, streamlining the worker's setup process.
- Maintained the restoration of shared data structures from the main process.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the EXIF data formatting logic to conditionally include GPS information only when latitude and longitude are available.
- Introduced a new worker initialization message structure to facilitate the transfer of shared data between the main process and workers.
- Enhanced the worker process to handle initialization messages and deserialize shared data for improved task management.
- Refactored the manifest loading and saving functions to support a new manifest structure, ensuring compatibility with the updated data handling.
Signed-off-by: Innei <tukon479@gmail.com>
- Improved the EXIF data extraction logic to include additional fields such as GPS references and color temperature settings.
- Updated the translation keys in localization files for various languages to reflect changes in EXIF data representation, including dynamic range and white balance settings.
- Refactored the formatting logic to ensure accurate display of GPS information and other EXIF attributes.
Signed-off-by: Innei <tukon479@gmail.com>
- Implemented GPS data display in the ExifPanel, including latitude, longitude, and altitude.
- Added a link to view the GPS location on a map.
- Updated localization files for Japanese, Korean, and various Chinese dialects to include new GPS-related translation keys.
- Refactored EXIF data formatting to support GPS information extraction.
Signed-off-by: Innei <tukon479@gmail.com>
- Replaced `exif-reader` with `exiftool-vendored` for improved EXIF data processing.
- Updated related components to utilize the new `PickedExif` type for better type safety.
- Refactored EXIF data extraction and formatting logic to align with the new library's structure.
- Removed deprecated dependencies and cleaned up related code for better maintainability.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed project name and title from "Photo Gallery" to "Afilmory" across multiple files including configuration, README, and web manifest.
- Updated descriptions and URLs to reflect the new branding.
- Adjusted OG image plugin and favicon generation scripts to align with the new project name.
Signed-off-by: Innei <tukon479@gmail.com>
- Bumped versions of several packages including zod (3.25.63), tailwindcss (4.1.10), tsx (4.20.2), and others to their latest releases for improved performance and security.
- Updated @types/node and @types/react to 24.0.1 and 19.1.8 respectively in various package.json files to ensure compatibility with the latest TypeScript features.
- Adjusted dependencies in the builder and webgl-viewer packages to reflect the latest versions.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated DebugInfo interface to replace tiling properties with a new tileSystem structure for better management of tile-related data.
- Deleted the lodWorker.ts file, which contained the LOD processing logic, as it is no longer needed.
- Introduced a new texture.worker.ts file to handle tile creation using OffscreenCanvas, improving performance and memory management.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a new package `@photo-gallery/data` to manage photo data and metadata.
- Updated various components to utilize the new photoLoader from the data package.
- Adjusted dependencies in `pnpm-lock.yaml` and `package.json` files to include the new package.
- Refactored imports across the application to streamline photo data access.
Signed-off-by: Innei <tukon479@gmail.com>
- Added mobile detection to conditionally render either WebGLImageViewer or DOMImageViewer based on device type.
- Refactored image copying logic to improve reliability and user feedback during the copy process.
- Introduced DOMImageViewer component for better handling of image interactions on mobile devices.
- Updated WebGLImageViewer to streamline image loading and context menu interactions.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced WebGLImageViewerEngine2 for optimized image rendering and interaction.
- Added support for on-demand LOD management, allowing for efficient memory usage and improved performance.
- Updated WebGLImageViewer to utilize the new engine based on image dimensions.
- Enhanced DebugInfo interface to include additional visibility region information.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed the getImageDisplaySize function to directly use original image dimensions, improving WebGL loading efficiency.
- Updated ProgressiveImage and WebGLImageViewer components to accept optional width and height props for better image handling.
- Enhanced WebGLImageViewerEngine to utilize preknown dimensions for optimized loading and rendering strategies.
- Implemented logic to handle dimension mismatches and adjust rendering strategies accordingly.
Signed-off-by: Innei <tukon479@gmail.com>
- Added utility functions for detecting mobile, iOS, Android, and tablet devices, improving responsiveness based on device type.
- Implemented performance estimation methods to assess device capabilities, allowing for optimized loading strategies.
- Updated WebGLImageViewerEngine to utilize new device detection and performance estimation features, enhancing memory management and loading behavior for large images.
- Refactored image loading and texture creation processes to avoid blocking the main thread, improving overall user experience.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new strategy for managing Level of Detail (LOD) textures, allowing only the currently needed LOD to be retained, which optimizes memory usage.
- Updated the image loading method to accept ImageData, enhancing flexibility in image processing.
- Refactored texture creation and cleanup processes to support the new LOD management strategy, ensuring efficient memory handling.
- Removed preloading logic in favor of on-demand LOD creation to further reduce memory pressure.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced drag optimization features to improve performance during image dragging.
- Added methods for throttled tile updates and predictive loading based on drag direction.
- Enhanced tile priority calculation to ensure better loading of visible tiles.
- Adjusted tile loading strategies based on drag state and device type for improved responsiveness.
- Implemented cleanup and state management for drag events to maintain rendering quality.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced CollapsibleSection and StatusIndicator components for better organization of debug information.
- Updated DebugInfoComponent to support collapsible sections for transform, image, memory, and tiling information.
- Improved styling and layout for better readability and user interaction.
- Adjusted debug information display logic to handle null state and added quality and memory pressure indicators.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated ProgressiveImage component to conditionally render high-resolution images based on the current image state.
- Enhanced DebugInfo component to include detailed memory usage statistics.
- Introduced a tiled rendering system in WebGLImageViewerEngine for efficient handling of large images, including memory management and cleanup strategies.
- Implemented logic to dynamically adjust loading strategies based on image size and device type.
Signed-off-by: Innei <tukon479@gmail.com>
- Upgraded `eslint-config-hyoban` from 4.0.7 to 4.0.8.
- Updated AWS SDK packages `@aws-sdk/client-s3` and `@aws-sdk/s3-request-presigner` from 3.823.0 to 3.824.0.
- Bumped `@tanstack/react-query` from 5.80.2 to 5.80.5.
- Updated `@types/react-dom` from 19.1.5 to 19.1.6.
- Incremented `tsdown` version from 0.12.6 to 0.12.7.
Signed-off-by: Innei <tukon479@gmail.com>