2016-04-19 12 views
0

こんにちは、私はPhotoshopのカーブを使用して、いくつかのフィルタ効果を作り、彼らは次のようになります。 enter image description herePhotoshopのカーブポイントをRGB番号配列に抽出する方法は?

enter image description here

は、それが数配列であるので、私は各色から256個の数字のそれぞれを抽出することができます方法はありますこのような?

var r = [0, 0, 0, 1, 1, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 17, 18, 19, 19, 20, 21, 22, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 47, 48, 49, 52, 54, 55, 57, 59, 60, 62, 65, 67, 69, 70, 72, 74, 77, 79, 81, 83, 86, 88, 90, 92, 94, 97, 99, 101, 103, 107, 109, 111, 112, 116, 118, 120, 124, 126, 127, 129, 133, 135, 136, 140, 142, 143, 145, 149, 150, 152, 155, 157, 159, 162, 163, 165, 167, 170, 171, 173, 176, 177, 178, 180, 183, 184, 185, 188, 189, 190, 192, 194, 195, 196, 198, 200, 201, 202, 203, 204, 206, 207, 208, 209, 211, 212, 213, 214, 215, 216, 218, 219, 219, 220, 221, 222, 223, 224, 225, 226, 227, 227, 228, 229, 229, 230, 231, 232, 232, 233, 234, 234, 235, 236, 236, 237, 238, 238, 239, 239, 240, 241, 241, 242, 242, 243, 244, 244, 245, 245, 245, 246, 247, 247, 248, 248, 249, 249, 249, 250, 251, 251, 252, 252, 252, 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255] 

愚かであれば申し訳ありませんが、私は何を求めているのか、それは遅いです。

更新:Mark Setchellの回答に続いて、これらの値を内部に持つsaved.ppmファイルを作成することができました。

enter image description here

最後のステップは、数字のこの長い文字列からRGB値を抽出するためだった、赤は0番目、3ND、第六の数で、グリーンは第一、第四、第七番号など

です他の誰にとっても、私はPhotoshopのカーブでフィルタを作成し、そのRGB値を抽出して、HTMLキャンバスでピクセルクロス処理を使用して適用しようとしていました。デモはhereです。

+0

実際、簡単な方法があります。後で、0から255になるグレースケールの256px 1pxイメージを作成します。次に、カーブを適用して結果をダンプします。最初のピクセルは曲線が0ピクセルに黒を表示し、2ピクセル目は値1のピクセルにどのように表示されるかを示します。 –

答えて

1

はそれをやっての全く異なる、かつ簡単な方法です...あなたが実際に1を読みたいだろう知っている、あなたはバイトの梱包技術のアイデアを得るでしょうビット。以下のデータをramp.ppmというファイルに保存します。これは、NetPBMスイートsee Wikipedia hereのPortable Pixmapフォーマットです。幅256ピクセル、高さ1ピクセルの黒から白のグレースケールランプです。

Photoshopに読み込んでカーブを適用し、PNGファイルとして保存します。

P3 
256 1 
255 
0 0 0 
1 1 1 
2 2 2 
3 3 3 
4 4 4 
5 5 5 
6 6 6 
7 7 7 
8 8 8 
9 9 9 
10 10 10 
11 11 11 
12 12 12 
13 13 13 
14 14 14 
15 15 15 
16 16 16 
17 17 17 
18 18 18 
19 19 19 
20 20 20 
21 21 21 
22 22 22 
23 23 23 
24 24 24 
25 25 25 
26 26 26 
27 27 27 
28 28 28 
29 29 29 
30 30 30 
31 31 31 
32 32 32 
33 33 33 
34 34 34 
35 35 35 
36 36 36 
37 37 37 
38 38 38 
39 39 39 
40 40 40 
41 41 41 
42 42 42 
43 43 43 
44 44 44 
45 45 45 
46 46 46 
47 47 47 
48 48 48 
49 49 49 
50 50 50 
51 51 51 
52 52 52 
53 53 53 
54 54 54 
55 55 55 
56 56 56 
57 57 57 
58 58 58 
59 59 59 
60 60 60 
61 61 61 
62 62 62 
63 63 63 
64 64 64 
65 65 65 
66 66 66 
67 67 67 
68 68 68 
69 69 69 
70 70 70 
71 71 71 
72 72 72 
73 73 73 
74 74 74 
75 75 75 
76 76 76 
77 77 77 
78 78 78 
79 79 79 
80 80 80 
81 81 81 
82 82 82 
83 83 83 
84 84 84 
85 85 85 
86 86 86 
87 87 87 
88 88 88 
89 89 89 
90 90 90 
91 91 91 
92 92 92 
93 93 93 
94 94 94 
95 95 95 
96 96 96 
97 97 97 
98 98 98 
99 99 99 
100 100 100 
101 101 101 
102 102 102 
103 103 103 
104 104 104 
105 105 105 
106 106 106 
107 107 107 
108 108 108 
109 109 109 
110 110 110 
111 111 111 
112 112 112 
113 113 113 
114 114 114 
115 115 115 
116 116 116 
117 117 117 
118 118 118 
119 119 119 
120 120 120 
121 121 121 
122 122 122 
123 123 123 
124 124 124 
125 125 125 
126 126 126 
127 127 127 
128 128 128 
129 129 129 
130 130 130 
131 131 131 
132 132 132 
133 133 133 
134 134 134 
135 135 135 
136 136 136 
137 137 137 
138 138 138 
139 139 139 
140 140 140 
141 141 141 
142 142 142 
143 143 143 
144 144 144 
145 145 145 
146 146 146 
147 147 147 
148 148 148 
149 149 149 
150 150 150 
151 151 151 
152 152 152 
153 153 153 
154 154 154 
155 155 155 
156 156 156 
157 157 157 
158 158 158 
159 159 159 
160 160 160 
161 161 161 
162 162 162 
163 163 163 
164 164 164 
165 165 165 
166 166 166 
167 167 167 
168 168 168 
169 169 169 
170 170 170 
171 171 171 
172 172 172 
173 173 173 
174 174 174 
175 175 175 
176 176 176 
177 177 177 
178 178 178 
179 179 179 
180 180 180 
181 181 181 
182 182 182 
183 183 183 
184 184 184 
185 185 185 
186 186 186 
187 187 187 
188 188 188 
189 189 189 
190 190 190 
191 191 191 
192 192 192 
193 193 193 
194 194 194 
195 195 195 
196 196 196 
197 197 197 
198 198 198 
199 199 199 
200 200 200 
201 201 201 
202 202 202 
203 203 203 
204 204 204 
205 205 205 
206 206 206 
207 207 207 
208 208 208 
209 209 209 
210 210 210 
211 211 211 
212 212 212 
213 213 213 
214 214 214 
215 215 215 
216 216 216 
217 217 217 
218 218 218 
219 219 219 
220 220 220 
221 221 221 
222 222 222 
223 223 223 
224 224 224 
225 225 225 
226 226 226 
227 227 227 
228 228 228 
229 229 229 
230 230 230 
231 231 231 
232 232 232 
233 233 233 
234 234 234 
235 235 235 
236 236 236 
237 237 237 
238 238 238 
239 239 239 
240 240 240 
241 241 241 
242 242 242 
243 243 243 
244 244 244 
245 245 245 
246 246 246 
247 247 247 
248 248 248 
249 249 249 
250 250 250 
251 251 251 
252 252 252 
253 253 253 
254 254 254 
255 255 255 

Linuxを持っている、とあなたはImageMagickのを持っている場合は、そのファイルsaved.ppmはその後、あなたの曲線の出力を表示します

convert saved.png -compress none saved.ppm 

バックPPMファイルに保存されたPNGファイルを変換することができますグレースケールランプの各入力値に対して、実際には探している256の値になります。

ImageMagickをお持ちでない場合は、私にPNGファイルを与えてください。私はあなたのために変換します。

+0

ありがとうございました!これは完璧です! – tmvnty

+0

優秀 - それはあなたのために働いてうれしい。あなたのプロジェクトに幸運。 –

1

今日はコードを書いている気がしませんが、あなたが何をしているのか分からないときは、しかし、あなたが求めていることは完全に達成可能です。

作成したカーブを保存すると(Saveオプションが右上のメニューに表示されます)、.ACVというファイルが作成されます。 というカーブのセクションまでスクロールすると、このファイルのフォーマットはhereになります。これは、識別子とバージョン番号だけで、あなたのカーブに定義したポイント数のカウント、つまりあなたのケースでは6を持つかなりシンプルなフォーマットです。次に、各点について、4つの座標。これらはPerlなどで簡単に抽出できます。

おそらくGNUplotを使ってこれらのポイントにカーブをフィットさせ、補間して探しているポイントを見つけることができます。参照先文書から

抜粋:ここ

enter image description here

は、実際に.ACVファイルを書き込み、私はPerlで書いたいくつかのコードからの抽出物です。私はここで

#!/usr/bin/perl 
use strict; 
use warnings; 
use Image::Magick; 
use Data::Dumper; 

my $Debug=1; # 1=print debug messages, 0=don't 
my $NPOINTS=5; # Number of points in curve we create 

.... 
.... other stuff 
.... 

# Work out name of the curve file = image basename + acv 
my $curvefile=substr($imagename,0,rindex($imagename,'.')) . ".acv"; 
open(my $out,'>:raw',$curvefile) or die "Unable to open: $!"; 
print $out pack("s>",4); # Version=4 
print $out pack("s>",4); # Number of curves in file = Master NULL curve + R + G + B 

print $out pack("s>",2);      # Master NULL curve with 2 points for all channels 
print $out pack("s>",0 ),pack("s>",0 );  # 0 out, 0 in 
print $out pack("s>",255),pack("s>",255);  # 255 out, 255 in 

print $out pack("s>",2+$NPOINTS);    # Red curve 
print $out pack("s>",0 ),pack("s>",0 );  # 0 out, 0 in 
for($p=0;$p<$NPOINTS;$p++){ 
    print $out pack("s>",$Rpoint[$p]),pack("s>",$greypoint[$p]); 
} 
print $out pack("s>",255),pack("s>",255);  # 255 out, 255 in 

print $out pack("s>",2+$NPOINTS);    # Green curve 
print $out pack("s>",0 ),pack("s>",0 );  # 0 out, 0 in 
for($p=0;$p<$NPOINTS;$p++){ 
    print $out pack("s>",$Gpoint[$p]),pack("s>",$greypoint[$p]); 
} 
print $out pack("s>",255),pack("s>",255);  # 255 out, 255 in 

print $out pack("s>",2+$NPOINTS);    # Blue curve 
print $out pack("s>",0 ),pack("s>",0 );  # 0 out, 0 in 
for($p=0;$p<$NPOINTS;$p++){ 
    print $out pack("s>",$Bpoint[$p]),pack("s>",$greypoint[$p]); 
} 
print $out pack("s>",255),pack("s>",255);  # 255 out, 255 in 

close($out); 
+0

お返事ありがとうございます! Googleの周りを見て、人々がこれを前にしたページを見つけることができません。私は確かにPerlとGNUplotを見ていきます – tmvnty

関連する問題