Comments (3)
It will depend how much of the metadata you want to preserve. The MetadataNames
property allows you to explicitly select items to be copied to the output by using the Windows Metadata Policy names. A common use case for that would be to ensure that copyright (the System.Copyright
policy) is maintained. The Windows Metadata Policies are good for explicit copying because they take care of differences in metadata location between different container formats.
There is currently no provision for blindly copying all metadata from the source to destination. Part of that is due to the fact the source file might have hundreds of KBs of garbage in it (Photoshop edit history for example), but there is also the issue of metadata that may become invalid when an image is resized, such as focal point, subject, or faces tags.
I'd be interested in gathering more requirements for metadata handling if you have some specific scenarios in mind. The current handling is minimal, and the way writes are done using the Windows policies is not ideal. I'd like to improve that going forward, but it currently meets my own needs, and I'm not sure what else people would be looking for.
from photosauce.
Thanks for the prompt reply!
For our use case, we are currently looking to process mass amounts of imagery, and hoping to run this in parallel using serverless functions. As part of our image processing, we have found that call outs to numerous number of 3rd party services often have size (both file size and image dimension) limits. As such, we were looking into libraries that allowed us to scale down (resize) images to the appropriate dimensions, so that we could achieve a greater success rate of processing.
Having looked at some other libraries, we found yours to be one of the best in terms of speed and memory (we quite often ran into OutOfMemoryExceptions using different libraries at our scale), but noticed that once the images were resized, we lost the associated EXIF data which we were using for other processing.
Perhaps it was my own naivety in this space thinking that I could blindly copy EXIF data across, you make a very valid point that some of it wouldn't actually make sense on the resized image! Again, many thanks for your response and your efforts into this library 👍
from photosauce.
No problem, and thanks for the kind words!
I'm not sure MagicScaler will work with serverless functions because of its dependence on WIC. The dependencies are present on Azure's Windows App Servers, but I haven't tried any other non-VM cloud hosting options for it. The next big task on my list is support for alternate codecs so I can get it working cross-platform. If you end up staying with MagicScaler, do let me know if you have any concrete ideas around metadata handling options. I'd like to get an API design sketched out in case someone has time to work on it.
from photosauce.
Related Issues (20)
- System.Runtime.InteropServices.COMException at PhotoSauce.MagicScaler.WicPlanarCache.loadBuffer
- Problem with certain PNG images HOT 8
- Transparent Color on PadTransform HOT 1
- RobiniaDocs API Explorer
- Update libwebp HOT 4
- Option to retain gif loop count when resizing HOT 6
- Could not load type 'PhotoSauce.MagicScaler.Converters.ChannelChanger`1' HOT 8
- ColorMatrixTransform does not unpremultiply/premultiply HOT 1
- Default JPEG encoding options are not publicly accessible HOT 4
- EncoderInfo not set correctly if output to Stream
- MagicScalar Linux issue
- libpng throws bad adaptive filter will abort writing result HOT 3
- libpng fails to convert several files that WIC can handle HOT 2
- `ArgumentOutOfRangeException` reading JPEG XL image from their test page HOT 3
- After update the solution to .NET 8 version the NativeCodecs dependency started to fail HOT 3
- Noob question: Having a hard time understanding the native codec binary build steps.
- How to gain best possible quality, disregard performance.
- IMultiFrameDecoderOptions support missing for JPEG XL HOT 1
- Decoder FrameRange validation is not valid HOT 2
- Build warning with net8.0 app HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from photosauce.