Code Monkey home page Code Monkey logo

wolfpack's Introduction

Wolfpack 0.0.1

Wolfpack is an image processing library for iOS and OS X. With the vast improvements to Core Image brought on by iOS 6, working with images on the iPhone and iPad has never been easier.

This is a total work in progress.

Installation

  • Run git submodule update --init --recursive in the project directory to build.
  • Add -ObjC to target's Other Linker Flags
  • Target Dependency is libWolfpack
  • Link against libWolfpack, libz, libc++, CoreImage, CoreGraphics, Accelerate
  • Import <Wolfpack/Wolfpack.h> where you want to use it.

What's There

  • Apply a variety of different effects and overlays to an image based off a filter file bundle.
  • Crop images off as squares, ready to upload to that photo social network.

What's Not

  • Documentation is non-existent outside of this README file.
  • Lua script processing does not work
  • Curve file (ACV) processing currently does not work.

The .filter file format

Wolfpack works with "filter" files that contain the assets and instructions for routinely applying an effect to your image. A .filter file is just a zipped bundle of images, scripts and JSON parsing information that Wolfpack uses to apply its effects to an image.

Why JSON instead of plist? The idea is to make the filter file format platform-agnostic so someone could build an Android, Windows Phone or whatever processing engine that uses the same file formats.

filter.json

You can see a sample filter description at: https://gist.github.com/justin/5087965

  • formatVersion: Allow for versioning of filters for changes going forward
  • filterIdentifier: A unique identifier for your filter. Reverse DNS notation
  • filterName: The user visible name of your filter
  • filterDescription: A description of what your filter does
  • requirements: In the case that your filter uses a platform-specific technology you can define those settings here. Should be an array.
  • organizationName: Duh?
  • organizationURL: The URL for your company/org
  • sampleImages: An array of sample images bundled with your filter showing what a finalized photo may look like. Should match the size of the of the filter downloaded.
  • processing: An array of the steps that are to be performed on the image.

Support processing types:

  • blur: A gaussian blur
  • color: Apply a color blend
  • adjustment: Apply image adjustments like brightness, contrast, etc
  • curve: [Not Implemented Yet]
  • gradient: Supports a gradientType of either linear or radial
  • image: Overlay an image using a specific blending mode.
  • script: [Not Implemented Yet]
  • CoreImage: A free-form CoreImage action that you can use with any supported CIFilter.

Filter Conventions

  1. "Packaging" artwork allows you to give the filter a logo or some other design asset to visually identify it. Artwork be called 'packaging.png' and '[email protected]' respectively.
  2. Each filter should be distributed based on the device image output size. At current time that is 1536, 1936, and 2448. By breaking each filter out like this saves bandwidth for the user since they only have to download the image assets for their specific device size. Filters should be named accordingly: Filter_1536.filter, Filter_2448.filter, Filter_2448.filter
  3. String assets can be localized if they are stored in the language specific .lproj folder. [Not Currently Implemented]
  4. The filterize.rb script in Script will generate the filters for each supported size. See the 'NoirFilter' sample folder for an example of how stuff should be named.
  5. Scripts (when supported) should be Lua based.

Requirements

Wolfpack requires iOS 6 and uses ARC.

Credits & Contact

Wolfpack was lovingly created by Justin Williams (@justin on Twitter).

License

Wolfpack is licensed under the MIT license. See the LICENSE file for more info.

wolfpack's People

Contributors

danthorpe avatar

Watchers

william avatar James Cloos 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.