Giter VIP home page Giter VIP logo

imagesharp's Introduction

ImageSharp

ImageSharp is a new cross-platform 2D graphics API designed to allow the processing of images without the use of System.Drawing.

ImageSharp is still in early stages (alpha) but progress has been pretty quick. As such, please do not use on production environments until the library reaches release candidate status. Pre-release downloads are available from the MyGet package repository.

GitHub license GitHub issues GitHub stars GitHub forks ![Gitter](https://badges.gitter.im/Join Chat.svg) Twitter

Build Status Code Coverage
Linux/Mac Build Status Code coverage
Windows Build Status Code coverage

Installation

At present the code is pre-release but when ready it will be available on Nuget.

Pre-release downloads

We already have a MyGet package repository - for bleeding-edge / development NuGet releases.

Packages

The ImageSharp library is made up of multiple packages, to make ImageSharp do anything useful you will want to make sure you include at least one format as a dependency otherwise you will not be able to save/load any images.

Packages include:

  • ImageSharp Contains the Image classes, Colors, Primitives, Bootstrapper, IImageFormat interface, and other core functionality.
  • ImageSharp.Formats.Jpeg The jpeg decoder/encoder (Auto registered)
  • ImageSharp.Formats.Png The png decoder/encoder (Auto registered)
  • ImageSharp.Formats.Gif The gif decoder/encoder (Auto registered)
  • ImageSharp.Formats.Bmp The bmp decoder/encoder (Auto registered)
  • ImageSharp.Processing Contains methods like Resize, Crop, Skew, Rotate - Anything that alters the dimensions of the image. Contains methods like Gaussian Blur, Pixelate, Edge Detection - Anything that maintains the original image dimensions.
  • ImageSharp.Drawing Brushes and various drawing algorithms.

Manual build

If you prefer, you can compile ImageSharp yourself (please do and help!), you'll need:

To clone it locally click the "Clone in Windows" button above or run the following git commands.

git clone https://github.com/JimBobSquarePants/ImageSharp

Features

There's plenty there and more coming. Check out the current features!

API

Without the constraints of System.Drawing We have been able to develop something much more flexible, easier to code against, and much, much less prone to memory leaks. Gone are system-wide process-locks. Images and processors are thread safe usable in parallel processing utilizing all the availables cores.

Many Image methods are also fluent.

Here's an example of the code required to resize an image using the default Bicubic resampler then turn the colors into their grayscale equivalent using the BT709 standard matrix.

using (FileStream stream = File.OpenRead("foo.jpg"))
using (FileStream output = File.OpenWrite("bar.jpg"))
{
    Image image = new Image(stream);
    image.Resize(image.Width / 2, image.Height / 2)
         .Grayscale()
         .Save(output);
}

Individual processors can be initialised and apply processing against images. This allows nesting which brings the potential for powerful combinations of processing methods:

new BrightnessProcessor(50).Apply(sourceImage, sourceImage.Bounds);

Setting individual pixel values is perfomed as follows:

Image image = new Image(400, 400);
using (var pixels = image.Lock())
{
    pixels[200, 200] = Color.White;
}

For advanced usage the Image<TColor> and PixelAccessor<TColor> classes are available allowing developers to implement their own color models in the same manner as Microsoft XNA Game Studio and MonoGame.

All in all this should allow image processing to be much more accessible to developers which has always been my goal from the start.

How can you help?

Please... Spread the word, contribute algorithms, submit performance improvements, unit tests.

Performance is a biggie, if you know anything about the new vector types and can apply some fancy new stuff with that it would be awesome.

There's a lot of developers out there who could write this stuff a lot better and faster than I and I would love to see what we collectively can come up with so please, if you can help in any way it would be most welcome and benificial for all.

The ImageSharp Team

Grand High Eternal Dictator

Core Team

imagesharp's People

Contributors

adamsitnik avatar andy-wilkinson avatar antonfirsov avatar asapostolov avatar banane9 avatar christopherbauer avatar cosmo0 avatar dampee avatar digitalhurricane avatar dlemstra avatar jeavon avatar jimbobsquarepants avatar laurentiumm avatar mellinoe avatar michael-mason avatar mortenbock avatar mweber26 avatar nul800sebastiaan avatar olivif avatar pdelvo avatar rekvin avatar robbaman avatar roklem avatar rubensr avatar shutdown256 avatar tbroust-trepia avatar tocsoft avatar ullibe avatar voidstar69 avatar yufeih avatar

Watchers

 avatar  avatar

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.