Coder Social home page Coder Social logo

freudi74 / mfimage Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 3.0 64.39 MB

Library for reading / writing images from multiple file formats in a way suitable for color management and manipulating them.

License: GNU General Public License v3.0

C++ 99.68% C 0.32%
jpeg tga pcx tiff bmp png gif color-management c-plus-plus

mfimage's People

Contributors

freudi74 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

mfimage's Issues

Read/Write L*a*b* TIFFs

Read CIELAB TIFFs and store them internally in 32 bit (float) per channel (although image files might be 8, 16 bit). Always write as 16 bit ?

Catch exceptions at Interface boundaries

my code is using Exceptions. However, no exception should go through the interface to avoid crashes due to uncaught exceptions. Also, improve exception Throwing process. Add Error Enumeration and error text extraction.

Fix license.

Really want to go with GPL? Does this go well with the fact that there are Non-GPL (MIT, BSD, PNG) licenses in depencies?

Write TIFF files planar

Currently TIFF files can not be written in planar order, only contiguous. Add support for that

Write BMP Files up to v5 (with alpha, icc profile)

Write a BitmapInfoHeaderV5 header if there is an Alpha channel or an embedded ICC Profile. Otherwise, write a BitmapInfoHeaderV1 (as we do no).
This adds support to write BMP files with alpha and ICC profile.

JPEG2000 ICC Profile

Something is fishy with ICC profiles ind JPEG2000 images; it almost looks as if OpenJPEG would use embedded ICC to already convert the image data to sRGB (?). Not verified in code, potentially also the test file with embedded ICC simply was bad.

Fix JPEG2000 read on Windows build

For some reason, JPEG2000 read gives bad results on Windows. Looks like a color channel issue. Might be something related to my homebrew build of OpenJPEG. Need to check. Did I say, that OpenJPEG is a mess?

JPEG2000 resolution box support

Need resolution from JPEG2000 header. Seems to be not supported by OpenJPEG, at least not doing the high-level stuff. Need to get into OpenJPEG, but need time for that. For now it works, but no guarantees in terms of the colors.

Add ImageFilters

Add a base class for filtering images, that can be extended by the user to implement actual filters.
Later, perhaps, distribute some filters mfImage.
Typical filters would be: Level + gamma filter, brighness, sharpening, blur, gaussian blur, unsharpen mask, invert, Hue+Saturation, ...
Note that all those filters should be implemented for:
RGB, CMYK, GRAY, LAB
in 8,16,32 bit depth! Or perhaps need a "canFilter" that returns false for unsupported image types.

Read JPEG2000 from stream/memory

Currently, a JPEG2000 can only be read through a file, not from a stream. The API that takes a stream writes that to a temp file and reads it from there. Fix that.

Read JPEG from stream/memory

Currently, a JPEG can only be read through a file, not from a stream. The API that takes a stream writes that to a temp file and reads it from there. Fix that.

Read GIF from stream/memory

Currently, a GIF can only be read through a file, not from a stream. The API that takes a stream writes that to a temp file and reads it from there. Fix that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.