Giter Club home page Giter Club logo

grunt-imageoptim's Introduction

grunt-imageoptim

The companion Grunt plugin for ImageOptim-CLI, which automates batch optimisation of images with ImageOptim, ImageAlpha and JPEGmini for Mac.

NPM version NPM downloads Dependency Status Follow JamieMason on GitHub Follow fold_left on Twitter

๐ŸŒฉ Installation

npm install grunt-imageoptim --save-dev

๐Ÿ”— Dependencies

Since this project automates three Mac Applications, you will need them to be installed on your machine for us to be able to reach them.

A local copy of ImageOptim-CLI will be installed, you won't need to install that separately.

โš–๏ธ Configuration

As with all Grunt plugins, grunt-imageoptim is configured using a Gruntfile.js in the root of your project.

Grunt provide a short walkthrough of a sample Gruntfile which explains how they work, but the general structure is this;

module.exports = function(grunt) {
  grunt.initConfig({
    /* your grunt-imageoptim configuration goes here */
  });
  grunt.loadNpmTasks("grunt-imageoptim");
};

Use defaults

Here we want to optimise two directories using default options.

imageoptim: {
  myTask: {
    src: ["www/images", "css/images"];
  }
}

Override defaults

Here we want to optimise two directories using only ImageAlpha and ImageOptim, then close them once we're done.

imageoptim: {
  myTask: {
    options: {
      jpegMini: false,
      imageAlpha: true,
      quitAfter: true
    },
    src: ['www/images', 'css/images']
  }
}

Custom options for each task

Here we have a task for a folder of PNGs and another for JPGs. Since we use ImageAlpha to optimise PNGs but not JPGs and vice versa with JPEGmini, here we toggle their availability between the two tasks.

imageoptim: {
  myPngs: {
    options: {
      jpegMini: false,
      imageAlpha: true,
      quitAfter: true
    },
    src: ['img/png']
  },
  myJpgs: {
    options: {
      jpegMini: true,
      imageAlpha: false,
      quitAfter: true
    },
    src: ['img/jpg']
  }
}

Option inheritance

This example is equivalent to the custom options for each task example, except we're setting some base options then overriding those we want to change within each task.

imageoptim: {
  options: {
    quitAfter: true
  },
  allPngs: {
    options: {
      imageAlpha: true,
      jpegMini: false
    },
    src: ['img/png']
  },
  allJpgs: {
    options: {
      imageAlpha: false,
      jpegMini: true
    },
    src: ['img/jpg']
  }
}

โš–๏ธ Configuration

All options can be either true or false and default to false.

  • quitAfter Whether to exit each application after we're finished optimising your images.
  • jpegMini Whether to process your images using a copy of JPEGmini.app installed on your Mac.
  • imageAlpha Whether to process your images using a copy of ImageAlpha.app installed on your Mac.

๐Ÿ™‹๐Ÿพโ€โ™€๏ธ Getting Help

grunt-imageoptim's People

Contributors

asimpson avatar dbushell avatar jamiemason avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grunt-imageoptim's Issues

Only seeing "kb" as output after running grunt task

Thanks @JamieMason for the tool. Im just having a little trouble running the "grunt-imageoptim" command on an Linux apache server containing a directory of images.

When I run the command locally everything works completely fine.

screen shot 2017-01-25 at 12 21 29 pm

But as soon as I run the command on my external apache server with essentially the same gruntfile.js this is my output:

screen shot 2017-01-25 at 12 15 40 pm

Any help, or any ideas as to why this might be happening. A solution is much appreciated.

full paths vs relative paths

when using imageoptim-cli relative paths work without issue, but I can only get grunt-imageoptim to validate full paths. Attempting to use a relative path results in

Running "imageoptim:files" (imageoptim) task
Processing "[path/relative/to/gruntfile]"
Fatal error: โœ˜ Could not find directory [path/relative/to/gruntfile]

Can't get 1.2.11 to work

When I run grunt imageoptim with 1.2.11 I get "Fatal error: config.files is not an array".

Gruntfile:

imageoptim: {
    prod: {
        options: {
            imageAlpha: true,
            quitAfter: true
        },

        files: {
            src: ['dist/images']
        }
    }
}

I tried files: 'dist/images' and got "Warning: Cannot use 'in' operator to search for 'src' in dist/images".

Reverting to 1.2.6 fixes it for me.

Mac OS X 10.8.4
grunt-cli v0.1.9
grunt v0.4.1

Example gruntfile

In your example gruntfile in the readme it states to use:

  files: [
    'path/to/img/dir',
    'path/to/some/other/img/dir'
  ],

That actually failed for me. I needed to use some/path/*.
Don't know if it's just me or if this could be enhanced in the readme ๐Ÿ˜„

Imageoptim opening gui

So when running my grunt task it is successfully opening and closing imagealpha but when it comes to running imageoptim it is opening the gui applicaion. Now this would take hours and crash it on some occassions. What I found was that if I close the gui application the grunt task would continue to execute successfully compressing images on average by around 70%.

The grunt task has been setup as followed:
``imageoptim: {

        files: {

            options: {

                imageAlpha: true,

                jpegMini: false,

                quitAfter: true

            },

            src: ['src/']

        },

    }``

Is it natural for the gui to open or have I stuffed up a step in the installation/setup?

Thanks for your help!

Is it possible to gather the binaries from deps?

Is it possible to include a script that would download the deps from the apps / sources and extract them and pull out the binaries for imageoptim and include it within this module so that we could references those versions? Then we could have a flag that would fetch the binaries for us.

grunt-imageoptim as Service

It would be good to make from grunt-imageoptim an easy accessible right-click Mac service. Not every people like CLI and it would be faster accessible.
screenshot on 2013-09-03 at 20 45 19
What do you think, Jamie?

Integration with grunt-newer and similar

Example: WPChill/decode-lite@b9201d2#diff-595bf3fa2348192244b0319be33066b8L138

Passing a folder to grunt-imageoptim asks it to optimise every image in the folder, watchers like grunt-newer trigger work when n files change, but if the task is configured to run over an entire folder, that's what it will do.

This issue is to look into either updating documentation on glob patterns for matching files, or to see if anything needs to be added to help support these kinds of tasks.

Exclusions don't work

Jamie,
I tried to exclude a folder from being run and it didn't work using the exclude style from minimatch:

files: [
    '../../../assets/images/stuff',
    '!../../../assets/images/stuff/sprite'
]

The reason why I'd want to do this is because the items in the sprite directory are compass sprites that get compiled into their sprite in stuff through compass spriting so there is no need to run the optimization process on the sprite directory.

Hope that makes sense. Is this something that can be added?

Running ImageOptim via Grunt with JPEG Mini Option set to true, attempts to log me out

Hi,

When I run the grunt:imageoptim command, most of the time, the JPEG mini program opens, but no files are optimised and the apple menu is opened with the log out option highlighted.

I have copied the code you have set as an example, obviously changing the directories you have specified.

Just to add, it also seems like the imageAlpha option does not work too, it seems like the only program which optimises any images is ImageOptim.

Ben

Problem with Grunt

Everytime that I try to install and use with grunt, I am getting a message about minimatch:
deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue

And: npm WARN [email protected] requires a peer of grunt@~0.4.1 but none was installed.
npm WARN [email protected] requires a peer of grunt@~0.4.0 but none was installed.

Any help would be appreciated. I have scoured the internet and tried various things. Thanks.

Fatal error: could not find directory

I'm using grunt-imageoptim and suddenly it's not working anymore.
I have one folder with images inside and it trips over an image.
(this image exists)
Seen this before?

โ€ฆ
Processing "assets/2-published.png"
Processing "assets/2-workbench-overview.png"
Processing "assets/2-workbench.png"
Processing "assets/3-people-block.png"
Processing "assets/3-people.png"
Fatal error: โœ˜ Could not find directory assets/2-workbench.png

current gruntfile

module.exports = function(grunt){
    grunt.initConfig({
      pkg: grunt.file.readJSON('package.json'),

      imageoptim: {
        files: [
          'assets/*'
        ],
        options: {
          imageAlpha: true,
          jpegMini: false,
          quitAfter: true
        }
      }

    });

    grunt.loadNpmTasks('grunt-imageoptim');
    grunt.registerTask('default', ['imageoptim']);
};

3.6hours later.... nothing was written

Was just using this tool to minify everything and see that after 3.6 hours of 100% CPU, it says that it exited with a failure status:

/Users/wats/Sites/grunt/src/c/6/48/2h1.png was: 220.211kb now: 69.160kb saving: 151.051kb (68.00%)
/Users/wats/Sites/grunt/src/c/6/48/2h2.png was: 221.880kb now: 70.385kb saving: 151.495kb (68.00%)
/Users/wats/Sites/grunt/src/c/6/48/2h3.png was: 217.723kb now: 69.171kb saving: 148.552kb (68.00%)
/Users/wats/Sites/grunt/src/c/6/48/3h1.png was: 219.652kb now: 68.416kb saving: 151.236kb (68.00%)
/Users/wats/Sites/grunt/src/c/6/48/3h2.png was: 221.311kb now: 69.982kb saving: 151.329kb (68.00%)
/Users/wats/Sites/grunt/src/c/6/48/3h3.png was: 217.078kb now: 69.435kb saving: 147.643kb (68.00%)
Fatal error: ImageOptim-CLI exited with a failure status

I check out the files and it seems that they're all the same size :(
I guess ImageOptim is incredibly slow and intensive and for PNGs it doesn't seem to save THAT much in comparison to ImageAlpha which runs much quicker. Perhaps it would be a good idea to disable ImageOptim and just use Alpha?
Optim says it saved me about 12% average, but Alpha saved about 60-80%

Thanks!

New version of imageoptim-cli breaks Jpegmini functionality

I just started a new project and Jpegmini via grunt-imageoptim wouldn't work for me the way it usually does. It just hangs while trying to open the temp files.
I compared the grunt-imageoptim install against an older one that's still working fine and noticed that imageoptim-cli is was a couple of versions ahead 1.7.11 -> 1.11.4. Replacing the new version with the old fixed the issue, so something in either 1.11.3 or 1.11.4 of imageoptim-cli broke jpegmini in grunt-imageoptim.
Also, thanks for this plugin, it saves me a bunch of time.

Using template tags in files path doesn't work

Love the plugin, nice job Jamie. I'm having one issue and that is that I can't use a template tag in the file path as I can do with just about all the other grunt plugins I've tried. This works:

files: ['images']

This doesn't:

files: ['<%= files.img %>']

And yes, files.img is defined :) Any idea about this one?

Keep up the great work!

Need to make some corrections to README file

I was trying to implement the plugin today and got tripped up by the documentation.

imageoptim: {
  myPngs: {
    options: {
      jpegMini: false,
      imageAlpha: true,
      quitAfter: true
    },
    src: ['img/png']
  },
  myJpgs: {
    options: {
      jpegMini: true,
      imageAlpha: false,
      quitAfter: true
    },
    src: ['img/jpg']
  }
}

Need to change to:

imageoptim: {
  myPngs: {
    options: {
      jpegMini: false,
      imageAlpha: true,
      quitAfter: true
    },
    src: ['img/`*`.png']
  },
  myJpgs: {
    options: {
      jpegMini: true,
      imageAlpha: false,
      quitAfter: true
    },
    src: ['img/`*`.jpg']
  }
}

There are two different places in the document that this should be updated.

Thanks.

Confusion about files settings

I'm using grutnt-imageoptim 1.4.1 with grunt 0.4.5 and grunt-cli 0.1.13.

I'm using these settings:

imageoptim: {
  build: {
    files: [{
      expand: true,
      cwd:    'dist',
      src: [
        'assets/img/**',
        '!assets/img/cache/*.{jpg,jpeg,png,gif}'
      ]
    }]
  }
}

I've tried tons of variations of !assets/img/cache/*.{jpg,jpeg,png,gif} where I targeted just the directory (with and w/o a trailing slash) or everything in it. No matter what I do, it goes after the cache as well.

Image optim not installed

Hi

My first time using imageOptim via grunt. I have ImageOptim installed and the other apps. I am getting a error message no matter what i do of "โœ˜ ImageOptim is not installed (http://imageoptim.com)". The app is installed and I have reinstalled several times. I have also installed all globally and try sudo commands with no luck.

All help appreciated

Troubles installing / Task feedback

It took me a long time to get this package working. Perhaps I'm just stupid.

Could you possibly update the readme with clear installation steps, or update the grunt task to provide some meaningful feedback.

Here's a rundown of how my setup went:

npm install -g imageoptim-cli
npm install grunt-imageoptim

Try to run, get an error that tells me nothing, except something is wrong.
At this point I did not know I needed to install imageoptim.

Go to the imageoptim website, install imageoptim on my lion machine.
Try to run the task. Get the same error that tells me nothing.
Eventually read more on the imageoptim homepage and learn I must explicitly enable the app to run, because I'm on mountain lion and gatekeeper is ruining my mojo.

Run the imageoptim task again, with imagealpha and jpegmini set to false.
Something happens.

Set imagealpha to true in the task options. Try to run the task. Another fail. Same useless error message.
Refer to the readme on the imageoptim page. Install imagealpha. Repeat the same steps to circumvent gatekeeper.

Run the task again. Now it works.

Update the task options and set jpegmini to true. Download jpegmini trial/light.
Task won't run.

Spend $30 buying jpegmini.
Try to run the task, still won't work, still the same error message.
Mess around uninstalling jpegmini light, as the in-app upgrade as left the app named jpegmini-light. Maybe this is the cause of the error?

Try to run the task again, same old error message.

I'm really frustrated at this point, not only have I wasted a lot of time, I've also spent $30 in the app store to get jpegmini to use with this task and it won't run.

Next up, I try imageoptim CLI directly, perhaps it will provide me with useful feedback if it fails.

When I try to run the imageoptim task, I get a useful error message.
I need to enable access for assistive devices. Ok. Easy. Done.

Try the CLI task. Works. Try the grunt task, it finally works.

It would have been really helpful if the grunt task had printed the message about assistive devices, or really any meaningful feedback about the numerous errors.

Failing that, could you please update the readme so the dependencies and additional steps (installing additional apps, allowing software to run & enabling access for assistive devices) are displayed upfront.

prevent generation loss?

Is there a way to prevent generation loss using grunt-imageoptim?
http://en.wikipedia.org/wiki/Generation_loss
The ways I can think of accomplishing this are:

  • _source and destination paths_ - always keep essence at 100% quality, and output with 1 generation of loss each time
    drawback - scalability suffers as the site accumulates more images
  1. _keep track of "already optimized" images_
  2. _compare with cache_ - keep a copy of previous originals, and compress only those whose cached originals are different or not present

Enable access for assistive devices issue

I'm trying to run the imageoptim grunt task with jpegMini set to true. When I run the command I'm met with the following error.

"โœ˜ To automate JPEGmini we need to enable GUI Scripting. Check 'Enable access for assistive devices' under Accessibility in System Preferences, then run ImageOptim-CLI again.
Fatal error: ImageOptim-CLI exited with a failure status"

I'm on Mavericks and went through the process of adding JPEGmini to the Accessibility options under privacy in the Security & Privacy System preferences.

Is there something else I need to do?

Thanks,

Dan Blake

Fails when processing very large folders

I'm getting this error when running grunt-imageoptim on a directory containing a large number of images. This does not happen with smaller directories. ImageOptim (the GUI app) runs fine (though slowly) and processes all the files. The error shows up in the Terminal while grunt-imageoptim's output is being printed.

In the output below, I'm running ImageAlpha, JPEGmini, and ImageOptim, but the error happens even with ImageOptim alone. With the output below it dies after 1102 files, but sometimes it's a little more or less.

Running "imageoptim:blamo" (imageoptim) task...
Running ImageAlpha......
Running JPEGmini......
Running ImageOptim......
....png was: 44.035kb now: 43.362kb saving: .673kb (1.00%) quality: 99.9825827%
....png was: 44.119kb now: 60.439kb saving: -16.320kb (-36.00%) quality: %
....png was: 113.611kb now: 113.611kb saving: 0kb (0%) quality: 100%
...snip...
....jpg was: 29.078kb now: 29.078kb saving: 0kb (0%) quality: 100%
....jpg was: 44.367kb now: 44.367kb saving: 0kb (0%) quality: 100%
Fatal error: ImageOptim-CLI exited with a failure status...

JPEGmini not working - imageoptim-cli v1.11.6 :: grunt-imageoptim v1.4.1 :: Grunt v0.4.5 :: JPEGmini v1.9.0

JPEGmini sounds two error alerts and then crashes, giving the error message below. ImageOptim and ImageAlpha work fine, but I prefer JPEGmini for its superior results. Any chance of a fix for this?
OS X 10.10.3
imageoptim-cli v1.11.6
grunt-imageoptim v1.4.1
Grunt v0.4.5
JPEGmini v1.9.0

////////////////////////// JPEGMINI ERROR MESSAGE /////////////////////////////

Process: JPEGmini [12428]
Path: /Applications/JPEGmini.app/Contents/MacOS/JPEGmini
Identifier: com.icvt.JPEGmini-retail
Version: 1.9.0 (96)
Code Type: X86 (Native)
Parent Process: ??? [1]
Responsible: JPEGmini [12428]
User ID: 501

Date/Time: 2015-05-03 16:47:20.497 -0400
OS Version: Mac OS X 10.10.3 (14D136)
Report Version: 11
Anonymous UUID: 886B64E2-96D3-FDEF-EA30-A0366B9BC5DE

Sleep/Wake UUID: 0ED34ABD-3636-46B2-9507-5FA00ABC2BB9

Time Awake Since Boot: 160000 seconds
Time Since Wake: 28000 seconds

Crashed Thread: 1 Dispatch queue: com.apple.libdispatch-manager

Exception Type: EXC_CRASH (SIGSEGV)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Thread 0:: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x904820a7 objc_msgSend + 23
1 com.apple.CoreFoundation 0x9426fdaf CFAutoreleasePoolPop + 47
2 com.apple.Foundation 0x9356b26f -[NSAutoreleasePool drain] + 122
3 com.apple.Foundation 0x93587715 NSAppleEventManagerGenericHandler + 244
4 com.apple.AE 0x90455952 aeDispatchAppleEvent(AEDesc const
, AEDesc
, unsigned long, unsigned char_) + 583
5 com.apple.AE 0x904203b7 dispatchEventAndSendReply(AEDesc const_, AEDesc*) + 44
6 com.apple.AE 0x904202aa aeProcessAppleEvent + 313
7 com.apple.HIToolbox 0x9761c1c1 AEProcessAppleEvent + 55
8 com.apple.AppKit 0x95edaece _DPSNextEvent + 2707
9 com.apple.AppKit 0x95ed9dc5 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 350
10 com.apple.AppKit 0x95ece77c -[NSApplication run] + 907
11 com.apple.AppKit 0x95e43bc0 NSApplicationMain + 2082
12 com.icvt.JPEGmini-retail 0x0000288c 0x1000 + 6284
13 com.icvt.JPEGmini-retail 0x000025e5 0x1000 + 5605

Thread 1 Crashed:: Dispatch queue: com.apple.libdispatch-manager
0 libsystem_kernel.dylib 0x97a568ce kevent64 + 10
1 libdispatch.dylib 0x9565873f _dispatch_mgr_invoke + 245
2 libdispatch.dylib 0x956583a2 _dispatch_mgr_thread + 52

Thread 2:
0 libsystem_kernel.dylib 0x97a55e6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x9abe82b1 _pthread_wqthread + 939
2 libsystem_pthread.dylib 0x9abe5e2e start_wqthread + 30

Thread 3:
0 libsystem_kernel.dylib 0x97a55e6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x9abe82b1 _pthread_wqthread + 939
2 libsystem_pthread.dylib 0x9abe5e2e start_wqthread + 30

Thread 4:
0 libsystem_kernel.dylib 0x97a55e6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x9abe82b1 _pthread_wqthread + 939
2 libsystem_pthread.dylib 0x9abe5e2e start_wqthread + 30

Thread 5:: com.apple.NSURLConnectionLoader
0 libsystem_kernel.dylib 0x97a4f9ce mach_msg_trap + 10
1 libsystem_kernel.dylib 0x97a4ea70 mach_msg + 68
2 com.apple.CoreFoundation 0x942abef6 CFRunLoopServiceMachPort + 214
3 com.apple.CoreFoundation 0x942ab309 __CFRunLoopRun + 1529
4 com.apple.CoreFoundation 0x942aaaa6 CFRunLoopRunSpecific + 390
5 com.apple.CoreFoundation 0x942aa90b CFRunLoopRunInMode + 123
6 com.apple.CFNetwork 0x9bd62bdf +[NSURLConnection(Loader) _resourceLoadLoop:] + 717
7 com.apple.Foundation 0x9358caed -[NSThread main] + 45
8 com.apple.Foundation 0x9358c896 __NSThread__main
+ 1538
9 libsystem_pthread.dylib 0x9abe7e13 _pthread_body + 138
10 libsystem_pthread.dylib 0x9abe7d89 _pthread_start + 162
11 libsystem_pthread.dylib 0x9abe5e52 thread_start + 34

Thread 6:
0 libsystem_kernel.dylib 0x97a4f9ce mach_msg_trap + 10
1 libsystem_kernel.dylib 0x97a4ea70 mach_msg + 68
2 com.apple.CoreFoundation 0x942abef6 __CFRunLoopServiceMachPort + 214
3 com.apple.CoreFoundation 0x942ab309 __CFRunLoopRun + 1529
4 com.apple.CoreFoundation 0x942aaaa6 CFRunLoopRunSpecific + 390
5 com.apple.CoreFoundation 0x942aa90b CFRunLoopRunInMode + 123
6 com.apple.AppKit 0x95fa9ea0 _NSEventThread + 283
7 libsystem_pthread.dylib 0x9abe7e13 _pthread_body + 138
8 libsystem_pthread.dylib 0x9abe7d89 _pthread_start + 162
9 libsystem_pthread.dylib 0x9abe5e52 thread_start + 34

Thread 7:: com.apple.CFSocket.private
0 libsystem_kernel.dylib 0x97a5584e __select + 10
1 com.apple.CoreFoundation 0x942fbb3a __CFSocketManager + 906
2 libsystem_pthread.dylib 0x9abe7e13 _pthread_body + 138
3 libsystem_pthread.dylib 0x9abe7d89 _pthread_start + 162
4 libsystem_pthread.dylib 0x9abe5e52 thread_start + 34

Thread 8:
0 libsystem_kernel.dylib 0x97a55e6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x9abe82b1 _pthread_wqthread + 939
2 libsystem_pthread.dylib 0x9abe5e2e start_wqthread + 30

Thread 1 crashed with X86 Thread State (32-bit):
eax: 0x00000004 ebx: 0x00000000 ecx: 0xb001067c edx: 0x97a568ce
edi: 0x956790a0 esi: 0x95658658 ebp: 0xb00106f8 esp: 0xb001067c
ss: 0x00000023 efl: 0x00000247 eip: 0x97a568ce cs: 0x0000000b
ds: 0x00000023 es: 0x00000023 fs: 0x00000023 gs: 0x0000000f
cr2: 0x42047000

Logical CPU: 0
Error Code: 0x00000171
Trap Number: 132

Binary Images:
0x1000 - 0x21efe3 +com.icvt.JPEGmini-retail (1.9.0 - 96) /Applications/JPEGmini.app/Contents/MacOS/JPEGmini
0x32c000 - 0x33ffff +org.andymatuschak.Sparkle (1.5 Beta 6 - 313) <5DF2B8A3-560D-4500-6B85-4215644DE532> /Applications/JPEGmini.app/Contents/Frameworks/Sparkle.framework/Versions/A/Sparkle
0x350000 - 0x384ff7 +net.hockeyapp.sdk.mac (2.0 - 19) <5EF15A21-86F1-353A-89CA-AB4CC3BCA607> /Applications/JPEGmini.app/Contents/Frameworks/HockeySDK.framework/Versions/A/HockeySDK
0x1540000 - 0x155bff7 com.apple.security.csparser (3.0 - 57031.20.26) /System/Library/Frameworks/Security.framework/PlugIns/csparser.bundle/Contents/MacOS/csparser
0x825c000 - 0x82a9fff com.apple.CloudDocs (1.0 - 321.6) /System/Library/PrivateFrameworks/CloudDocs.framework/CloudDocs
0x9db0000 - 0x9ddaff3 com.apple.osax.standardadditions (2.3 - 368.1) <8C11074B-FBBD-355B-AC44-F563DD48D66C> /System/Library/ScriptingAdditions/StandardAdditions.osax/Contents/MacOS/StandardAdditions
0xaae4000 - 0xaae4ffb +cl_kernels (???) <9E96A285-FC90-47C6-A045-63EEE9C7934D> cl_kernels
0xaaf2000 - 0xaaf2ffb +cl_kernels (???) cl_kernels
0xaaf5000 - 0xabe0ff7 unorm8_bgra.dylib (2.4.5) <8F181889-D219-3292-B6C0-F6607D1924B0> /System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/ImageFormats/unorm8_bgra.dylib
0xac7c000 - 0xacfdff7 com.apple.xquery (1.3.1 - 30) <6B4EF9B6-DF7B-3A1A-8C60-2419453F0BFE> /System/Library/PrivateFrameworks/XQuery.framework/XQuery
0x8fe34000 - 0x8fe67e03 dyld (353.2.1) <06B1254D-9BB9-327C-BA15-8F18FFF97586> /usr/lib/dyld
0x9000c000 - 0x9002ffff libJPEG.dylib (1237) <6838FF44-9DF6-349E-AFB4-182F80C2DA79> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
0x90030000 - 0x90038fff libsystem_dnssd.dylib (561.1.1) <45CDAF46-03DE-33DB-A627-14F245993EF2> /usr/lib/system/libsystem_dnssd.dylib
0x90039000 - 0x90058ff7 com.apple.GenerationalStorage (2.0 - 209.11) <34CF76B2-8052-359D-816D-092608FB6919> /System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage
0x90059000 - 0x9008bffb com.apple.GSS (4.0 - 2.0) <2E9B0C48-962E-3CAB-ABCE-0A16CFCEF53E> /System/Library/Frameworks/GSS.framework/Versions/A/GSS
0x9008d000 - 0x903e7ff7 libmecabra.dylib (666.7) <55A50B97-92D3-3DDC-8E3A-58BC5FFE5E3F> /usr/lib/libmecabra.dylib
0x903e8000 - 0x90405ffb com.apple.Ubiquity (1.3 - 313) <9ED23769-0725-3D4B-B7F4-AF08020D73C3> /System/Library/PrivateFrameworks/Ubiquity.framework/Versions/A/Ubiquity
0x90406000 - 0x90415ffb libxar.1.dylib (255) <4FF7DB6F-3232-302F-94BC-F1188F78AF25> /usr/lib/libxar.1.dylib
0x90416000 - 0x9047aff7 com.apple.AE (681.2 - 681.2) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
0x9047b000 - 0x90480fff com.apple.print.framework.Print (10.0 - 265) <7C3984BB-8337-3B90-A414-17C181A45744> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
0x90481000 - 0x906702ef libobjc.A.dylib (647) <7648C174-3098-3B26-AD20-490DBFFD5D4C> /usr/lib/libobjc.A.dylib
0x90671000 - 0x90b19ff7 com.apple.JavaScriptCore (10600 - 10600.5.10) /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore
0x90b1a000 - 0x90bbafff com.apple.QD (301 - 301) <4DFE3689-59DE-3FBC-806B-6A4056573E52> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
0x90bbb000 - 0x90bbdfff libsystem_coreservices.dylib (9) <20E66A47-8D67-344A-A393-73926F0E5FB2> /usr/lib/system/libsystem_coreservices.dylib
0x90cbb000 - 0x90ce4fff libsystem_info.dylib (459.20.1) <91DEA2CC-26A7-32CD-ABC5-0B2754874E38> /usr/lib/system/libsystem_info.dylib
0x90cec000 - 0x90d42fff libc++.1.dylib (120) /usr/lib/libc++.1.dylib
0x90dc7000 - 0x90dcffff com.apple.CoreServices.FSEvents (1210.20.1 - 1210.20.1) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents
0x90dd0000 - 0x90dd2fff libsystem_sandbox.dylib (358.20.5) /usr/lib/system/libsystem_sandbox.dylib
0x90dd3000 - 0x90e9efff com.apple.DiscRecording (9.0 - 9000.4.2) <8E19F180-3D32-3C7A-8E73-272F2955D9A8> /System/Library/Frameworks/DiscRecording.framework/Versions/A/DiscRecording
0x90e9f000 - 0x90ea1fff libCVMSPluginSupport.dylib (11.1.2) <2C725DC9-0773-3637-B905-7A8B2001192F> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
0x90ea2000 - 0x90f92ff3 com.apple.DiskImagesFramework (10.10.1 - 396) <25716B90-E152-3666-92BB-FE543AEB6FA9> /System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/DiskImages
0x90f93000 - 0x90f93fff libOpenScriptingUtil.dylib (162.1) /usr/lib/libOpenScriptingUtil.dylib
0x90f94000 - 0x90fa5fff libsystem_coretls.dylib (35.20.2) <3688680D-90B5-373F-9E0D-46809E98B023> /usr/lib/system/libsystem_coretls.dylib
0x90fa6000 - 0x90ffbff3 com.apple.audio.CoreAudio (4.3.0 - 4.3.0) <2AF304F7-5DA4-3035-9E15-070F16700789> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x90ffc000 - 0x910c7fff com.apple.backup.framework (1.6.4 - 1.6.4) <75DC1CA0-5D18-3E8F-A8BC-D737FC9C55C4> /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
0x910c8000 - 0x910cdff7 libmacho.dylib (862) <48DE74F8-09E3-344F-A82F-665083A3BF8F> /usr/lib/system/libmacho.dylib
0x910ce000 - 0x91256ff7 com.apple.audio.toolbox.AudioToolbox (1.12 - 1.12) /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
0x91257000 - 0x91358ff7 com.apple.LaunchServices (644.56 - 644.56) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
0x91359000 - 0x91445fe7 libvMisc.dylib (516) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
0x91446000 - 0x9144cff3 libsystem_platform.dylib (63) <509993B7-3F26-3360-B899-0BBB15152516> /usr/lib/system/libsystem_platform.dylib
0x9144d000 - 0x9144efff libDiagnosticMessagesClient.dylib (100) <3EE83437-AA9C-356B-810B-589346B73797> /usr/lib/libDiagnosticMessagesClient.dylib
0x9145c000 - 0x9150efff libCoreStorage.dylib (471.20.7) <34D9A40A-97EB-3365-B809-13DA5BF569C6> /usr/lib/libCoreStorage.dylib
0x9150f000 - 0x9178dff3 com.apple.security (7.0 - 57031.20.26) <7E5439C5-752D-367F-A28A-AA34C7307981> /System/Library/Frameworks/Security.framework/Versions/A/Security
0x91aac000 - 0x91ae6ff7 com.apple.DebugSymbols (115 - 115) /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
0x91ae7000 - 0x91c58ffb libBLAS.dylib (1128) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
0x91c59000 - 0x91c93fff com.apple.LDAPFramework (2.4.28 - 194.5) /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP
0x91c94000 - 0x91c98fff libheimdal-asn1.dylib (398.10.1) <6F113AF8-F5AD-330B-B029-F7AF28A93F28> /usr/lib/libheimdal-asn1.dylib
0x91c99000 - 0x91cabff7 libsasl2.2.dylib (194.1) <34CB75C7-09BE-3319-BF7E-D4E56495F07A> /usr/lib/libsasl2.2.dylib
0x91caf000 - 0x91cbfff7 com.apple.LangAnalysis (1.7.0 - 1.7.0) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
0x91cc0000 - 0x91cccff7 libkxld.dylib (2782.20.48) /usr/lib/system/libkxld.dylib
0x91ccd000 - 0x91d38ff7 com.apple.framework.CoreWiFi (3.0 - 300.4) <632A811D-4706-3ED7-85E3-DD2CDB47CF8F> /System/Library/PrivateFrameworks/CoreWiFi.framework/Versions/A/CoreWiFi
0x91d39000 - 0x91de6fff libcrypto.0.9.7.dylib (106) <19669D99-DC79-3715-BC3A-850016DDDD7F> /usr/lib/libcrypto.0.9.7.dylib
0x91de7000 - 0x91e64ff3 com.apple.framework.IOKit (2.0.2 - 1050.20.2) <84299E45-C5F3-365F-AC1B-0EAFF8057112> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x91e65000 - 0x91e7efff com.apple.Kerberos (3.0 - 1) <92735F11-CF1C-3FA6-8682-9A30AC9E2651> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
0x92203000 - 0x92254fff libcups.2.dylib (408.2) <425E4328-ECA1-31EE-B2C4-0D67FB8848BE> /usr/lib/libcups.2.dylib
0x92255000 - 0x92263ff7 libz.1.dylib (55) /usr/lib/libz.1.dylib
0x92264000 - 0x9227fff7 com.apple.CFOpenDirectory (10.10 - 187) <44C81E98-710E-30EB-829D-7374B9339345> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
0x92280000 - 0x9232fffb com.apple.Bluetooth (4.3.4 - 4.3.4f4) <90D495A0-431F-363B-8818-230CB096D6E1> /System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth
0x92330000 - 0x9233eff7 com.apple.SpeechRecognitionCore (2.1.2 - 2.1.2) /System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore
0x9233f000 - 0x923d9fff com.apple.ColorSync (4.9.0 - 4.9.0) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
0x923da000 - 0x92569ff3 libsqlite3.dylib (168) /usr/lib/libsqlite3.dylib
0x9256a000 - 0x9257dfff com.apple.CoreBluetooth (1.0 - 1) <153F2DDE-CCCF-3C63-AF70-2EA306DACDCD> /System/Library/Frameworks/CoreBluetooth.framework/Versions/A/CoreBluetooth
0x92580000 - 0x92589fff libGFXShared.dylib (11.1.2) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
0x9258a000 - 0x9267bffb libiconv.2.dylib (42) <4AF77F10-0BEC-3BE0-99DF-C5170EDB316B> /usr/lib/libiconv.2.dylib
0x9267c000 - 0x926a2ff7 com.apple.IconServices (47.1 - 47.1) <9C537499-B375-3F84-BF4A-EEF757FC26A9> /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices
0x926a3000 - 0x92716ffb com.apple.framework.CoreWLAN (5.0 - 500.35.2) <8D5F7007-D938-3A4D-841A-647D272D2DB6> /System/Library/Frameworks/CoreWLAN.framework/Versions/A/CoreWLAN
0x92717000 - 0x92721ffb com.apple.audio.SoundManager (4.2 - 4.2) <4312D0A7-4B6F-3A1E-9A47-24C6E8C65E51> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.framework/Versions/A/CarbonSound
0x92722000 - 0x9280cfff libcrypto.0.9.8.dylib (52.20.2) <3BE03EE0-9DAE-395D-8292-0371FB21EE3F> /usr/lib/libcrypto.0.9.8.dylib
0x9280d000 - 0x9280ffff com.apple.securityhi (9.0 - 55006) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
0x92810000 - 0x92914ff7 libJP2.dylib (1237) <3A85AB3C-AFC7-3761-A198-D6C7317E476A> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
0x92915000 - 0x92920ff7 com.apple.NetAuth (5.2 - 5.2) <3E650FB0-5EB5-3807-8B71-8FAF64D6A0FC> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
0x92921000 - 0x92935fff com.apple.ImageCapture (9.0 - 9.0) <4B84B5D5-A5F3-3B35-93CE-568A73486B92> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
0x92936000 - 0x92951ff3 com.apple.openscripting (1.4 - 162.1) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
0x92952000 - 0x929e4fff com.apple.CoreSymbolication (3.1 - 57020.1) <7A6A6AD6-E46A-334F-ACC4-41B179505EC9> /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication
0x929e5000 - 0x92a24fff com.apple.NavigationServices (3.8 - 215.1) <46D8B66D-CB59-36F5-BD26-FD8309337BB3> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/NavigationServices.framework/Versions/A/NavigationServices
0x92a25000 - 0x92a31ff3 libcommonCrypto.dylib (60061) <024B3913-15C6-3005-9E5A-EB24918F6977> /usr/lib/system/libcommonCrypto.dylib
0x92a32000 - 0x92a32fff libkeymgr.dylib (28) <06DDCEF8-EB84-3F68-9E19-FD1A12B764FD> /usr/lib/system/libkeymgr.dylib
0x92a33000 - 0x92ac0ff3 com.apple.PerformanceAnalysis (1.0 - 1) /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
0x92ac1000 - 0x92d58fff com.apple.CoreData (111 - 526.3) <93295B9D-6C48-3919-8B9C-A4291D3522CE> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
0x92d59000 - 0x92d6afff libbsm.0.dylib (34) /usr/lib/libbsm.0.dylib
0x92d6b000 - 0x92d6effb libutil.dylib (38) /usr/lib/libutil.dylib
0x92d6f000 - 0x92e15fff com.apple.Metadata (10.7.0 - 917.35) <3A9CD210-E9CC-3C1C-A72F-278F0694C1B1> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
0x92e16000 - 0x92f5aff7 com.apple.ImageIO.framework (3.3.0 - 1237) <314B3F6B-4DC5-31E9-BE67-032901676A34> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
0x9301a000 - 0x9305affb libGLImage.dylib (11.1.2) <9BAF083D-12EF-3CD9-A875-191B1A3CC687> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
0x9305b000 - 0x9305dffb libsystem_secinit.dylib (18) <3CBA3BD3-8BA2-358D-BD1A-A1C3DF5D84E6> /usr/lib/system/libsystem_secinit.dylib
0x9305e000 - 0x93060ffb libCGXType.A.dylib (779.11) <2B22C4C3-CF75-3909-B9A0-1B9A23028FBB> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGXType.A.dylib
0x93061000 - 0x93087ffb libPng.dylib (1237) <7EA0DEBE-4000-39D4-89E5-17F655BA317E> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
0x93088000 - 0x93088fff com.apple.CoreServices (62 - 62) <08A581EC-2E8B-30CF-B555-64171C8FE5EE> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x93089000 - 0x934c4feb com.apple.vImage (8.0 - 8.0) <56F6B317-9D70-3DC5-9868-BB6D7CB6E55D> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
0x934c5000 - 0x93519fff com.apple.HIServices (1.22 - 522.1) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
0x9351a000 - 0x93549fff com.apple.CoreVideo (1.8 - 145.1) /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
0x9354a000 - 0x938abff3 com.apple.Foundation (6.9 - 1153.20) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x938ac000 - 0x938acfff com.apple.Cocoa (6.8 - 21) <6AF80DDB-C28E-36FF-BC11-D7D561AC52A9> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
0x938ad000 - 0x938aefff libsystem_blocks.dylib (65) <5D98F022-E863-31D4-8ADE-D53B2AE0D331> /usr/lib/system/libsystem_blocks.dylib
0x938bb000 - 0x938bdffb libRadiance.dylib (1237) /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
0x938be000 - 0x938bffff libSystem.B.dylib (1213) /usr/lib/libSystem.B.dylib
0x938c0000 - 0x93ca8ff7 libLAPACK.dylib (1128) <4E3D1289-2C98-3E53-BB8D-AD911357FF66> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
0x93cde000 - 0x93ce5ff3 libunwind.dylib (35.3) <29D9343F-9A0A-3535-B0AE-E7CC761D95EE> /usr/lib/system/libunwind.dylib
0x93ce6000 - 0x93ce9fff libpam.2.dylib (20) /usr/lib/libpam.2.dylib
0x93cea000 - 0x93d47ff7 com.apple.print.framework.PrintCore (10.3 - 451.1) <86895179-C54B-3D8A-B515-92DFA6315FC9> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
0x94067000 - 0x9418dffb com.apple.WebKitLegacy (10600 - 10600.5.17) /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebKitLegacy.framework/Versions/A/WebKitLegacy
0x9418e000 - 0x9419bff7 com.apple.speech.synthesis.framework (5.3.3 - 5.3.3) <3771942E-13BB-30C0-9992-11EE637871DC> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
0x9419c000 - 0x941a4feb libcldcpuengine.dylib (2.4.5) /System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/libcldcpuengine.dylib
0x94234000 - 0x945e8ff7 com.apple.CoreFoundation (6.9 - 1153.18) <267B1002-C755-37B4-95CD-92358CF994B8> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x945e9000 - 0x945f1ffb com.apple.NetFS (6.0 - 4.0) <141BFE7E-634E-32A0-8EC9-0A1A4DFEA7D9> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
0x945f2000 - 0x94605fff libcmph.dylib (1) <2449B048-208E-36FB-9DFA-47E0F3BCF132> /usr/lib/libcmph.dylib
0x94606000 - 0x9460eff7 libCGCMS.A.dylib (779.11) /System/Library/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGCMS.A.dylib
0x9460f000 - 0x94642fff com.apple.CoreServicesInternal (221.7.2 - 221.7.2) <709E9F1B-D266-399B-9A4B-3785BBF64E01> /System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal
0x94643000 - 0x94669ff3 libxpc.dylib (559.20.9) <15931AC6-7282-332D-9A44-6CFF84AC63AF> /usr/lib/system/libxpc.dylib
0x9466a000 - 0x94673fff com.apple.AppleSRP (5.0 - 1) <41C48FA8-C249-3800-A551-7F4AFA3E723F> /System/Library/PrivateFrameworks/AppleSRP.framework/Versions/A/AppleSRP
0x94674000 - 0x947a6fff com.apple.UIFoundation (1.0 - 1) /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation
0x947a7000 - 0x947a7fff com.apple.Accelerate (1.10 - Accelerate 1.10) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
0x94957000 - 0x949defff com.apple.CoreServices.OSServices (640.4 - 640.4) <6ABC3CCE-5A4E-3CB2-AA12-3FFAB27D835A> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
0x949df000 - 0x949ebfff com.apple.CrashReporterSupport (10.10 - 631) <456980E6-2F31-321B-B35D-CA54B88C6F1C> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport
0x949ec000 - 0x949f8ff7 libcsfde.dylib (471.20.7) <95CB28B6-A722-3660-AD1B-07A7C0B8C74A> /usr/lib/libcsfde.dylib
0x94a26000 - 0x94a66fff libauto.dylib (186) <1609D0F9-6E3A-3C67-87EF-BB0BD93EDAC9> /usr/lib/libauto.dylib
0x94a67000 - 0x94ad0ff7 libcorecrypto.dylib (233.1.2) /usr/lib/system/libcorecrypto.dylib
0x94ad1000 - 0x94bc7ff7 libxml2.2.dylib (26) <2F37833C-4D55-3A09-9A0C-5904E8B6892A> /usr/lib/libxml2.2.dylib
0x94bc8000 - 0x94bfcffb com.apple.frameworks.CoreDaemon (1.3 - 1.3) /System/Library/PrivateFrameworks/CoreDaemon.framework/Versions/B/CoreDaemon
0x94bfd000 - 0x94c01fff libCoreVMClient.dylib (79.1) <3DB52AB1-D41E-3AC9-A355-1B6DCEDB4DFD> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
0x94c02000 - 0x94c0fff3 com.apple.ProtocolBuffer (1 - 228.0.1) /System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer
0x94c10000 - 0x94c11fff libremovefile.dylib (35) <49DCAF7B-4466-3775-9E58-EA5D7CBA8AE0> /usr/lib/system/libremovefile.dylib
0x94c12000 - 0x94c14ff3 com.apple.EFILogin (2.0 - 2) <00F6D57F-5B4F-373E-BBFF-D19E1E7F87E6> /System/Library/PrivateFrameworks/EFILogin.framework/Versions/A/EFILogin
0x94c1d000 - 0x94c26fff libcopyfile.dylib (118.1.2) /usr/lib/system/libcopyfile.dylib
0x94c27000 - 0x94d3dfff com.apple.CoreText (352.0 - 454.6) <5F236E10-C911-3AAF-8BA6-2F0F68A87443> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
0x9564c000 - 0x95653fff com.apple.speech.recognition.framework (5.0.9 - 5.0.9) <5D268178-3812-3777-92A6-D7D3395405B8> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
0x95654000 - 0x9567bfff libdispatch.dylib (442.1.4) /usr/lib/system/libdispatch.dylib
0x956ed000 - 0x95729ff3 com.apple.RemoteViewServices (2.0 - 99) <2839C2F1-88DA-3843-87BF-441A374A8967> /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
0x9572a000 - 0x957bffff libsystem_c.dylib (1044.10.1) <9804163C-4DEC-3B94-9854-00248E44554F> /usr/lib/system/libsystem_c.dylib
0x95d75000 - 0x95db5fff com.apple.Symbolication (1.4 - 56045) /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication
0x95db6000 - 0x95dbaffb libcache.dylib (69) <55501A00-AF64-3554-8F46-8D5AFEDEC332> /usr/lib/system/libcache.dylib
0x95dbb000 - 0x95dc9ff3 com.apple.opengl (11.1.2 - 11.1.2) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
0x95dca000 - 0x95dceffb libGIF.dylib (1237) /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
0x95dd2000 - 0x95df6ffb com.apple.framework.Apple80211 (10.3 - 1030.71.6) <84F7040E-713D-3B0E-8397-7CE0C377C52A> /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211
0x95e0f000 - 0x95e12fff com.apple.xpc.ServiceManagement (1.0 - 1) /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
0x95e13000 - 0x95e32ff7 com.apple.MultitouchSupport.framework (263.9.1 - 263.9.1) <9265A1BE-FA6F-38C7-BDFB-FA05EEC683CE> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
0x95e33000 - 0x95e40ff7 com.apple.OpenDirectory (10.10 - 187) <60A9481B-2191-35A2-AB7E-E48A2B49BF09> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
0x95e41000 - 0x96a6dfff com.apple.AppKit (6.9 - 1347.57) <2E995EB6-3DB5-3FE0-B140-3E7563903322> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x96a6e000 - 0x96a6efff com.apple.Carbon (154 - 157) /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
0x96bdd000 - 0x96bdfff7 libquarantine.dylib (76.20.1) <8694AC5A-7359-3CC6-8E93-CABFCC919D4B> /usr/lib/system/libquarantine.dylib
0x96be0000 - 0x96c29ffb libFontRegistry.dylib (134.1) <6CF6177B-D5D6-3E7B-88BC-BE833D55018C> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
0x96c2a000 - 0x96d40ff3 com.apple.desktopservices (1.9.3 - 1.9.3) <544FDA55-063A-3787-A55A-A54290E4BE6E> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
0x96d41000 - 0x96dc0fff com.apple.SystemConfiguration (1.14 - 1.14) <6081992E-6825-3F69-AACF-70ABFA4CE379> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
0x96e61000 - 0x97258fff com.apple.CoreGraphics (1.600.0 - 779.11) /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
0x9725c000 - 0x9754eff3 com.apple.CoreImage (10.3.4) <6A0E17E6-9F56-3450-8892-670A9C489C30> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/CoreImage.framework/Versions/A/CoreImage
0x9754f000 - 0x97582fe3 libsystem_m.dylib (3086.1) <951F633F-57B7-398B-912F-F6ED4DB1C597> /usr/lib/system/libsystem_m.dylib
0x97583000 - 0x975deffb libTIFF.dylib (1237) /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
0x975df000 - 0x979b8ff3 com.apple.HIToolbox (2.1.1 - 758.7) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x979b9000 - 0x97a2dfff com.apple.Heimdal (4.0 - 2.0) <0082F991-F391-31A6-915C-1FCB0AD004AC> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
0x97a2e000 - 0x97a3bff7 libbz2.1.0.dylib (36) <6BC7B049-8F03-3217-9840-B1804CCBF742> /usr/lib/libbz2.1.0.dylib
0x97a3c000 - 0x97a5bfff libsystem_kernel.dylib (2782.20.48) /usr/lib/system/libsystem_kernel.dylib
0x97a5c000 - 0x97a73ff3 libLinearAlgebra.dylib (1128) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
0x97a74000 - 0x97a9aff3 libc++abi.dylib (125) /usr/lib/libc++abi.dylib
0x97a9b000 - 0x97aecfff com.apple.opencl (2.4.2 - 2.4.2) <0751975F-97E4-3271-BA93-2FC7A5FDB940> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
0x97aed000 - 0x97b63fff com.apple.securityfoundation (6.0 - 55126) <2DB5BDF8-FB04-317B-9A7F-9AC8733947BF> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
0x97b64000 - 0x97b66fff libsystem_configuration.dylib (699.1.5) /usr/lib/system/libsystem_configuration.dylib
0x97b67000 - 0x97bdefff com.apple.ApplicationServices.ATS (360 - 375.2) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
0x97bdf000 - 0x97be2fff libextension.dylib (55.2) /usr/lib/libextension.dylib
0x97be3000 - 0x97be6fff libdyld.dylib (353.2.1) <30CE0D0E-7E82-3CD5-92E7-9C1D6AD3327C> /usr/lib/system/libdyld.dylib
0x97cf6000 - 0x97d13fff libCRFSuite.dylib (34) <781A92EF-410E-39B2-953D-FEE12748D834> /usr/lib/libCRFSuite.dylib
0x97d14000 - 0x97fadffb com.apple.WebKit (10600 - 10600.5.17) <080B2D66-0041-3F41-B055-A93179673502> /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit
0x9895d000 - 0x989a0fff libGLU.dylib (11.1.2) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
0x989a1000 - 0x989a1fff com.apple.audio.units.AudioUnit (1.12 - 1.12) /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
0x989a2000 - 0x98a99ff7 libFontParser.dylib (134.2) <1CE9DA9E-FBF3-32E4-838D-455EA531F26E> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
0x98a9a000 - 0x98ac7fff com.apple.ProtectedCloudStorage (1.0 - 1) <1CF781F8-1210-3B77-964B-D85F98B90681> /System/Library/PrivateFrameworks/ProtectedCloudStorage.framework/Versions/A/ProtectedCloudStorage
0x98ac8000 - 0x98ac8fff com.apple.ApplicationServices (48 - 48) <76C301A4-705B-33DE-BA11-C89DCF1EDCDD> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
0x98ac9000 - 0x98af7ff7 libarchive.2.dylib (30) <8758D35F-ADF8-30F6-8EB2-9B852876EAC8> /usr/lib/libarchive.2.dylib
0x98b4c000 - 0x98b65fff libsystem_malloc.dylib (53.1.1) <58CD8BC7-55D1-3862-8E5D-728EE2EBE447> /usr/lib/system/libsystem_malloc.dylib
0x98b66000 - 0x98d2bfff com.apple.QuartzCore (1.10 - 361.18) /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x98d4f000 - 0x98d54ff7 libcompiler_rt.dylib (35) <6630682F-AB76-3E55-BE51-0A3E61B6CFC2> /usr/lib/system/libcompiler_rt.dylib
0x98d55000 - 0x98d5bff7 libsystem_networkextension.dylib (167.1.10) /usr/lib/system/libsystem_networkextension.dylib
0x98d5c000 - 0x98ffbffb com.apple.RawCamera.bundle (6.03.1 - 779) <6F9D2F45-DBC7-3CB1-A412-59EBA38D0BC7> /System/Library/CoreServices/RawCamera.bundle/Contents/MacOS/RawCamera
0x98ffc000 - 0x9901bffb libresolv.9.dylib (57) /usr/lib/libresolv.9.dylib
0x9902a000 - 0x9902bfff liblangid.dylib (117) <34A0F807-755F-300B-B01F-AABAE3838451> /usr/lib/liblangid.dylib
0x9902c000 - 0x9902cfff liblaunch.dylib (559.20.9) /usr/lib/system/liblaunch.dylib
0x9902d000 - 0x99031ffb com.apple.IOSurface (97.4 - 97.4) /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
0x99032000 - 0x99034fff com.apple.loginsupport (1.0 - 1) /System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport
0x99035000 - 0x9903eff7 libsystem_notify.dylib (133.1.1) /usr/lib/system/libsystem_notify.dylib
0x9903f000 - 0x9904ffff libGL.dylib (11.1.2) <44DD250B-CB98-3FD1-BF5B-6AD85A68BF9A> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
0x99050000 - 0x99246fff libicucore.A.dylib (531.48) /usr/lib/libicucore.A.dylib
0x99247000 - 0x992e4fff com.apple.ink.framework (10.9 - 213) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
0x99500000 - 0x99500fff com.apple.Accelerate.vecLib (3.10 - vecLib 3.10) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
0x99501000 - 0x9953efff libsystem_network.dylib (412.20.3) <039F7709-8BFA-3299-8FD7-168145568642> /usr/lib/system/libsystem_network.dylib
0x9953f000 - 0x99556fff libsystem_asl.dylib (267) <85BD88AD-618E-3325-AC31-10DBAB8E9AF3> /usr/lib/system/libsystem_asl.dylib
0x99557000 - 0x995b2fff com.apple.LanguageModeling (1.0 - 1) <9B39E059-F48E-31AF-B1B3-B0872F362627> /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling
0x995b3000 - 0x999e6ff3 com.apple.vision.FaceCore (3.1.6 - 3.1.6) /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore
0x99a2c000 - 0x99a56fff libxslt.1.dylib (13) <0F55B64A-6C55-304E-ACE0-B531027AA066> /usr/lib/libxslt.1.dylib
0x99a57000 - 0x9aa10ff3 com.apple.WebCore (10600 - 10600.5.17) <1AB2AC41-CFB5-3848-97FF-8ABC4C6B476C> /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/WebCore
0x9aa11000 - 0x9aa15fff com.apple.CommonPanels (1.2.6 - 96) <955375E6-2416-38E1-AFC6-477827119329> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
0x9aa2e000 - 0x9aa48ff7 liblzma.5.dylib (7) /usr/lib/liblzma.5.dylib
0x9aa49000 - 0x9aa4fff7 libsystem_trace.dylib (72.20.1) <5F23BE77-1C60-3859-B528-C6B3C184C95C> /usr/lib/system/libsystem_trace.dylib
0x9aa50000 - 0x9aac6ff7 com.apple.SearchKit (1.4.0 - 1.4.0) <3693A221-B615-37D4-9FB1-F5F6CC7EE1A7> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
0x9ab47000 - 0x9ab8eff3 com.apple.AppleJPEG (1.0 - 1) <677BE130-F5AB-36F4-A51A-1FF20FC0085A> /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG
0x9ab8f000 - 0x9abe4ff7 com.apple.htmlrendering (77 - 1.1.4) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HTMLRendering.framework/Versions/A/HTMLRendering
0x9abe5000 - 0x9abedfff libsystem_pthread.dylib (105.10.1) <4A229519-29A1-3ABF-8CEF-43BCE4ACDA06> /usr/lib/system/libsystem_pthread.dylib
0x9ac20000 - 0x9ad4eff7 com.apple.coreui (2.1 - 308.6) <908A9C21-7AE9-3480-A858-2E4D928F661D> /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
0x9ad4f000 - 0x9b04dffb com.apple.CoreServices.CarbonCore (1108.6 - 1108.6) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
0x9b04e000 - 0x9b057ffb com.apple.CommonAuth (4.0 - 2.0) /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
0x9b9dc000 - 0x9ba0bff7 com.apple.DictionaryServices (1.2 - 229) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
0x9ba0c000 - 0x9ba15fff com.apple.DiskArbitration (2.6 - 2.6) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
0x9ba16000 - 0x9ba19ff7 com.apple.help (1.3.3 - 46) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
0x9ba1a000 - 0x9ba43fff libRIP.A.dylib (779.11) <4BD501EF-1671-3165-BD7A-CF227F4BD690> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib
0x9bd59000 - 0x9bf67ff7 com.apple.CFNetwork (720.3.13 - 720.3.13) <2593580E-5547-37C7-A99A-9D1B086C8B69> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
0x9bf68000 - 0x9bf7bfff com.apple.Sharing (328.16 - 328.16) <57F64876-D785-3B35-91B9-B2800F800C37> /System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing
0x9c202000 - 0x9c206ff3 com.apple.TCC (1.0 - 1) /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
0x9c207000 - 0x9c314fe3 libvDSP.dylib (516) <53F7A960-01E1-3B79-A7FD-67BD19471420> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
0x9c315000 - 0x9c34ffff com.apple.MediaKit (16 - 757.2) /System/Library/PrivateFrameworks/MediaKit.framework/Versions/A/MediaKit
0x9c350000 - 0x9c39eff7 libcurl.4.dylib (83.1.2) <50E14C55-B150-39E1-BA2C-B0658D38E580> /usr/lib/libcurl.4.dylib
0x9c39f000 - 0x9c3cbfff com.apple.ChunkingLibrary (2.1 - 163.6) /System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary
0x9c3f6000 - 0x9c3feff7 com.apple.icloud.FindMyDevice (1.0 - 1) /System/Library/PrivateFrameworks/FindMyDevice.framework/Versions/A/FindMyDevice
0x9c3ff000 - 0x9c3fffff libunc.dylib (29) /usr/lib/system/libunc.dylib
0x9c400000 - 0x9c46cff3 com.apple.datadetectorscore (6.0 - 396.1.1) /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
0x9c46d000 - 0x9c46efff com.apple.TrustEvaluationAgent (2.0 - 25) <28BBD931-EF7C-3753-B50E-6568F4075086> /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent

External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 1
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 100302
thread_create: 1
thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=180.9M resident=52.7M(29%) swapped_out_or_unallocated=128.2M(71%)
Writable regions: Total=131.7M written=15.0M(11%) resident=30.8M(23%) swapped_out=292K(0%) unallocated=100.9M(77%)

REGION TYPE VIRTUAL
=========== =======
CG backing stores 584K
CG image 960K
CG raster data 120K
CG shared images 272K
CoreAnimation 10.5M
CoreServices 320K
Foundation 4K
Image IO 5084K
Kernel Alloc Once 4K
MALLOC 84.6M
MALLOC (admin) 48K
Memory Tag 242 12K
OpenCL 16K
Stack 67.6M
VM_ALLOCATE 17.3M
__DATA 9244K
__IMAGE 528K
__IMPORT 4K
__LINKEDIT 41.8M
__OBJC 2592K
__TEXT 139.1M
__UNICODE 552K
mapped file 140.8M
shared memory 4K
=========== =======
TOTAL 521.6M

How do I use the imageAlpha functionality?

This is amazing because optimising pngs is one of the parts of my process that still requires manual effort. Thanks for your work.

I could easily be mistaken, but grunt-contrib-imagemin seems to do what imageOptim does, but I'm really keen on grunt-imageoptim for its apparent imageAlpha integration. I'm imagining a perfect scenario where it allows me to set a default imageAlpha options (eg. 32 colours, Median Cut, Dithered) and have those applied to pngs before running imageOptim.

However, I'm having a trouble figuring out how to get imageAlpha to work at all. Are there any undocumented options I should add to its grunt config? I tried to get imageAlpha to happen via raw command line (just to see it work) via imageOptim -da 'assets/img' but that just brings up the usage info. However, imageOptim -d 'assets/img' does run imageOptim on the images, so that seems to be installed okay.

I'm probably missing something here, but if anyone could enlighten me on this I'd be most appreciative.

Output to different destination?

Is it possible to input the source into grunt-imageoptim and output it to a different destination? Iโ€™d like to be able to restore from the master copy of a file, if possible.

ImageAlpha doesn't appear to be running

When i run via grunt I'm getting a Running ImageAlpha... message, but the images don't appear to be optimised via ImageAlpha, if I open ImageAlpha and manually run it; I'm getting final image sizes 25% of that I'm getting from running grunt imageoptim. I have version 1.3.5 of ImageAlpha installed.

imageoptim: {
      options: {
        jpegMini: false,
        imageAlpha: false,
        quitAfter: true
      }
      png: {
        options: {
          imageAlpha: true
        },
        src: [
          'static/img/**/*.png',
          'uploads/**/*.png'
        ]
      }
}

paths with whitespace need escaping for the CLI

For example, if I have the directory:
/Users/dbushell/My Project With Spaces/images/

The command generated might look like:
./imageOptim --directory /Users/dbushell/My Project With Spaces/images/

but the whitespace should be escaped like:
./imageOptim --directory /Users/dbushell/My\ Project\ With\ Spaces/images/

easy to fix, I'll submit a pull request in a minute!

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.