pxlsrt 1.8.0 → 1.8.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa77df27b6a2bcd94f0b1e23855baa5219e25f16
4
- data.tar.gz: a3b71ee3d6f67fb348628bd917491db1193474bf
3
+ metadata.gz: f915f6a50a406234a4f1c274cde03d3bc48b6cd1
4
+ data.tar.gz: 8bfbb3d85700fb157eaede9f2c25ecec7e0b8a24
5
5
  SHA512:
6
- metadata.gz: 6dd4f1a8187e9ccf3bab9e7735a190f53491404caa40bc3ae776b53077b4193cb820a62ce6973151aa613bf0beed0b3d76193c69bdd53b66644445155197a72f
7
- data.tar.gz: 43d0246a46cebfce1a22e4e817a65c8ead7fb5efd40f8daa4a0a5850ba054030b3f485701cc1191ec42bb846baf8a849e85eb8af99ef190534383eb98fdfa0ac
6
+ metadata.gz: ace76e75cfb0c2f928ca5f66817074e8f01464a07c8fd189bfa736ef20307b0b0cd1015b08ae1d638b9003f83acac508f0ad166beed4846083cc809597f32e7e
7
+ data.tar.gz: 2ab1738d82add3b876efe9efd5bb9897ccd4958f1ab06939a564e37ff01545516ecee9b28dd02cd3c6beae6e7a709c6fe3c25a8bce1350364d1cae0addabbe29
data/lib/pxlsrt/colors.rb CHANGED
@@ -6,7 +6,7 @@ module Pxlsrt
6
6
  class Colors
7
7
  ##
8
8
  # List of sorting methods.
9
- METHODS = ["sum-rgb", "red", "green", "blue", "sum-hsb", "hue", "saturation", "brightness", "uniqueness", "luma", "random", "cyan", "magenta", "yellow", "alpha", "sum-rgba", "sum-hsba"]
9
+ METHODS = ["sum-rgb", "red", "green", "blue", "sum-hsb", "hue", "saturation", "brightness", "uniqueness", "luma", "random", "cyan", "magenta", "yellow", "alpha", "sum-rgba", "sum-hsba", "none"]
10
10
  ##
11
11
  # Converts a ChunkyPNG pixel into an array of the red, green, blue, and alpha values
12
12
  def self.getRGBA(pxl)
@@ -72,55 +72,63 @@ module Pxlsrt
72
72
  # * luma
73
73
  # * random
74
74
  # * alpha
75
+ # * none
75
76
  def self.pixelSort(list, how, reverse)
76
77
  mhm=[]
77
78
  Pxlsrt::Helpers.error(list) if list.length == 0
79
+ if reverse == 0
80
+ k = 1
81
+ elsif reverse == 1
82
+ k = -1
83
+ else
84
+ k = [-1, 1].sample
85
+ end
78
86
  case how.downcase
79
87
  when "sum-rgb"
80
- mhm = list.sort_by { |c| ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c) }
88
+ mhm = list.sort_by { |c| k * (ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c)) }
81
89
  when "sum-rgba"
82
- mhm =list.sort_by { |c| ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c)+ChunkyPNG::Color.a(c) }
90
+ mhm =list.sort_by { |c| k * (ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c)+ChunkyPNG::Color.a(c)) }
83
91
  when "red"
84
- mhm = list.sort_by { |c| ChunkyPNG::Color.r(c) }
92
+ mhm = list.sort_by { |c| k * ChunkyPNG::Color.r(c) }
85
93
  when "yellow"
86
- mhm =list.sort_by { |c| ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c) }
94
+ mhm =list.sort_by { |c| k * (ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)) }
87
95
  when "green"
88
- mhm = list.sort_by { |c| ChunkyPNG::Color.g(c) }
96
+ mhm = list.sort_by { |c| k * ChunkyPNG::Color.g(c) }
89
97
  when "cyan"
90
- mhm =list.sort_by { |c| ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c) }
98
+ mhm =list.sort_by { |c| k * (ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c)) }
91
99
  when "blue"
92
- mhm = list.sort_by { |c| ChunkyPNG::Color.b(c) }
100
+ mhm = list.sort_by { |c| k * ChunkyPNG::Color.b(c) }
93
101
  when "magenta"
94
- mhm =list.sort_by { |c| ChunkyPNG::Color.r(c)+ChunkyPNG::Color.b(c) }
102
+ mhm =list.sort_by { |c| k * (ChunkyPNG::Color.r(c)+ChunkyPNG::Color.b(c)) }
95
103
  when "hue"
96
- mhm = list.sort_by { |c| ChunkyPNG::Color.to_hsb(c)[0] % 360 }
104
+ mhm = list.sort_by { |c| k * (ChunkyPNG::Color.to_hsb(c)[0] % 360) }
97
105
  when "saturation"
98
- mhm = list.sort_by { |c| ChunkyPNG::Color.to_hsb(c)[1] }
106
+ mhm = list.sort_by { |c| k * ChunkyPNG::Color.to_hsb(c)[1] }
99
107
  when "brightness"
100
- mhm = list.sort_by { |c| ChunkyPNG::Color.to_hsb(c)[2] }
108
+ mhm = list.sort_by { |c| k * ChunkyPNG::Color.to_hsb(c)[2] }
101
109
  when "sum-hsb"
102
- mhm = list.sort_by { |c| k = ChunkyPNG::Color.to_hsb(c); (k[0] % 360) / 360.0 + k[1] + k[2] }
110
+ mhm = list.sort_by { |c| hsb = ChunkyPNG::Color.to_hsb(c); k * ((hsb[0] % 360) / 360.0 + hsb[1] + hsb[2]) }
103
111
  when "sum-hsba"
104
- mhm = list.sort_by { |c| k = ChunkyPNG::Color.to_hsb(c); (k[0] % 360) / 360.0 + k[1] + k[2] + ChunkyPNG::Color.a(c) / 255.0 }
112
+ mhm = list.sort_by { |c| hsb = ChunkyPNG::Color.to_hsb(c); k * ((hsb[0] % 360) / 360.0 + hsb[1] + hsb[2] + ChunkyPNG::Color.a(c) / 255.0) }
105
113
  when "uniqueness"
106
114
  avg = Pxlsrt::Colors.colorAverage(list, true)
107
- mhm = list.sort_by { |c| Pxlsrt::Colors.colorUniqueness(c, [avg], true) }
115
+ mhm = list.sort_by { |c| k * Pxlsrt::Colors.colorUniqueness(c, [avg], true) }
108
116
  when "luma"
109
- mhm = list.sort_by { |c| ChunkyPNG::Color.r(c) * 0.2126 + ChunkyPNG::Color.g(c) * 0.7152 + ChunkyPNG::Color.b(c) * 0.0722 + ChunkyPNG::Color.a(c) }
117
+ mhm = list.sort_by { |c| k * (ChunkyPNG::Color.r(c) * 0.2126 + ChunkyPNG::Color.g(c) * 0.7152 + ChunkyPNG::Color.b(c) * 0.0722 + ChunkyPNG::Color.a(c)) }
110
118
  when "random"
111
119
  mhm = list.shuffle
112
120
  when "alpha"
113
- mhm = list.sort_by{ |c| ChunkyPNG::Color.a(c) }
121
+ mhm = list.sort_by{ |c| k * ChunkyPNG::Color.a(c) }
122
+ when "none"
123
+ if k == -1
124
+ mhm = list.reverse
125
+ else
126
+ mhm = list
127
+ end
114
128
  else
115
- mhm = list.sort_by { |c| ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c) }
116
- end
117
- if reverse == 0
118
- return mhm
119
- elsif reverse == 1
120
- return mhm.reverse
121
- else
122
- return [true, false].sample ? mhm : mhm.reverse
129
+ mhm = list.sort_by { |c| k * (ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c)) }
123
130
  end
131
+ return mhm
124
132
  end
125
133
  ##
126
134
  # Turns an RGB-like array into ChunkyPNG's color
@@ -1,5 +1,5 @@
1
1
  ##
2
2
  # The main module, your best friend.
3
3
  module Pxlsrt
4
- VERSION = "1.8.0"
4
+ VERSION = "1.8.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pxlsrt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - EVA-01
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-31 00:00:00.000000000 Z
11
+ date: 2015-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler