initial commit · aheckmann/gm@defc736 (original) (raw)

``

1

+

``

2

`+

// gm - Copyright Aaron Heckmann aaron.heckmann+github@gmail.com (MIT Licensed)

`

``

3

+

``

4

+

``

5

`+

var exec = require('child_process').exec

`

``

6

`+

, gm = {}

`

``

7

+

``

8

+

``

9

`+

gm.Image = function(utility, input) {

`

``

10

`+

this.input = input

`

``

11

`+

this.inArgs = [utility]

`

``

12

`+

this.outArgs = []

`

``

13

`+

}

`

``

14

+

``

15

`+

gm.Image.prototype =

`

``

16

`+

{ size: function(width, height){

`

``

17

`+

return this.makeArgs(["-size", width + "x" + height])

`

``

18

`+

}

`

``

19

`+

, _noProfileArg: function(){

`

``

20

`+

return ['+profile "*"']

`

``

21

`+

}

`

``

22

`+

, _resizeArg: function(width, height) {

`

``

23

`+

return ["-resize", width + "x" + height]

`

``

24

`+

}

`

``

25

`+

, makeArgs: function(inargs, outargs) {

`

``

26

`+

if (inargs)

`

``

27

`+

this.inArgs = this.inArgs.concat(inargs)

`

``

28

`+

if (outargs)

`

``

29

`+

this.outArgs = this.outArgs.concat(outargs)

`

``

30

`+

return this

`

``

31

`+

}

`

``

32

`+

, cmd: function() {

`

``

33

`+

return "gm "

`

``

34

`+

`

``

35

`+

`

``

36

`+

`

``

37

`+

}

`

``

38

`+

, write: function(callback){

`

``

39

`+

var cmd = this.cmd()

`

``

40

`+

exec(cmd, function(err, stdout, stderr){

`

``

41

`+

callback(err, stdout, stderr, cmd);

`

``

42

`+

})

`

``

43

`+

}

`

``

44

`+

}

`

``

45

+

``

46

+

``

47

`+

gm.Mogrify = function(image) {

`

``

48

`+

gm.Image.call(this, 'mogrify', image)

`

``

49

`+

}

`

``

50

`+

function mog() {}

`

``

51

`+

mog.prototype = gm.Image.prototype

`

``

52

`+

;(gm.Mogrify.prototype = new mog).constructor = gm.Mogrify

`

``

53

+

``

54

`+

gm.Mogrify.prototype.format = function(format){

`

``

55

`+

return this.makeArgs(["-format", format])

`

``

56

`+

}

`

``

57

`+

gm.Mogrify.prototype.dir = function(dir) {

`

``

58

`+

return this.makeArgs(["-output-directory", dir])

`

``

59

`+

}

`

``

60

`+

gm.Mogrify.prototype.createDir = function(dir) {

`

``

61

`+

return this.makeArgs(["-create-directories"])

`

``

62

`+

}

`

``

63

`+

gm.Mogrify.prototype.resize = function(width, height){

`

``

64

`+

return this.makeArgs(this._resizeArg(width, height))

`

``

65

`+

}

`

``

66

`+

gm.Mogrify.prototype.noProfile = function() {

`

``

67

`+

return this.makeArgs(this._noProfileArg())

`

``

68

`+

}

`

``

69

+

``

70

+

``

71

`+

gm.Convert = function(image) {

`

``

72

`+

gm.Image.call(this, 'convert', image)

`

``

73

`+

}

`

``

74

`+

function con(){}

`

``

75

`+

con.prototype = gm.Image.prototype

`

``

76

`+

;(gm.Convert.prototype = new con).constructor = gm.Convert

`

``

77

+

``

78

`+

gm.Convert.prototype.resize = function(width, height){

`

``

79

`+

return this.makeArgs(null, this._resizeArg(width, height))

`

``

80

`+

}

`

``

81

`+

gm.Convert.prototype.noProfile = function() {

`

``

82

`+

return this.makeArgs(null, this._noProfileArg())

`

``

83

`+

}

`

``

84

`+

gm.Convert.prototype.name = function(filename) {

`

``

85

`+

return this.makeArgs(null, [filename])

`

``

86

`+

}

`

``

87

+

``

88

+

``

89

`+

exports.Image = gm.Image

`

``

90

+

``

91

`+

exports.mogrify = function(image) {

`

``

92

`+

return new gm.Mogrify(image)

`

``

93

`+

}

`

``

94

`+

exports.convert = function(image) {

`

``

95

`+

return new gm.Convert(image)

`

``

96

`+

}

`