photoshop

暫定版 photoshopのスウォッチ(.aco)を色相で並び替えるようにした

とりあえずだけどやっと出来た、やっとだ。
スウォッチ(.aco)を色相か彩度か明度で並び替えるテスト

当初、色相の昇順だけを考えていたけど、どうせなのでHSBの昇順/降順6種類から選べるようにしてみた。

1.スウォッチを書き出す


プリセットマネージャーからも書き出せるかもしれないけどやったことない。

2.ソートの方法を選んで変換する


1.で保存したスウォッチを選択して
ソートの基準を色相、彩度、明度から選んで「変換」

3.ダウンロード


登録されている色数とRGBなんかと、ソート前の並び順とソート後の並び順を表示。

ソート済みファイルのダウンロード / 色数colors-西暦月日_時分秒.acoから保存先を選んでダウンロード、名前は変更しても問題なし。

こんな感じで使います。

追記|2010-01-12
不具合修正、ついでに重複した色を削除するようにしてみた
array_uniqueがローカルだと正常動作してるっぽいのに、サーバーにアップすると配列の先頭1つを残して全て削除してしまう、なにゆえ!?

追記2|2010-01-12
array_uniqueの第2引数にSORT_REGULARを設定したところローカルでもサーバー上でも同じ動作になった。
さくらインターネットのarray_uniqueの設定はSORT_STRINGがデフォルトにでもなっているのでしょうか?
ようわからん。

帰ってきた photoshopのスウォッチ(.aco)を色相で並び替えるようにしたい

この記事は最新版があります。

ローカルではacoをソート出来るようになったんですが、アップロードすると動かない。
どうも.acoファイルの読み込みが失敗してるみたい。

色相で並び替えたらこんな感じ。

色相でソートしても明度がめだつなぁ
綺麗なグラデーションになるかと思ってたけど、HSBをうまいこと混ぜてソートしないとダメみたいだがようわからん。

とりあえず、次はファイルのアップロードと変換後のダウンロード出来るようにしなきゃ。

headerつけて、readfileを使うのか?

続きを読む

パスがシェイプで、シェイプがパスで。

※2015-10-10現在も有効

他のやり方もあると思いますが

パスをシェイプにしたいなーって時

シェイプにしたいパスを選択して、[レイヤー] – [新規塗りつぶしレイヤー] – [ベタ塗り]

シェイプをパスにしたいなーって時

新規パスを作成ってところにドラッグ

続 photoshopのスウォッチ(.aco)を色相で並び替えるようにしたい

20091227|とりあえずのが出来たのでアップしまんた。
暫定版 photoshopのスウォッチ(.aco)を色相で並び替えるようにした
————————-

photoshopのスウォッチ(.aco)を色相で並び替えるようにしたいの続き。

まだまだ完成しないけど現状のメモ

[text]出力結果:
2
Array ( [0] => Array ( [0] => 50 [1] => 8b [2] => 94 ) [1] => Array ( [0] => 94 [1] => 50 [2] => 66 ) )
[/text]

続きを読む

photoshopのスウォッチ(.aco)を色相で並び替えるようにしたい

20091227|とりあえずのが出来たのでアップしまんた。
暫定版 photoshopのスウォッチ(.aco)を色相で並び替えるようにした
————————-

何をどうしたらそんな事が出来るようになるのかわからんので、やってる事がずれてるかもしれんけどもメモ。

.acoの中身を見たい、
バイナリエディタで見るしかないようだ。
Stirlingを使ってみる。

16進数?なにそれ、まいったな。

適当なスウォッチを何個か作って.acoで書き出して、見比べてみて判ったこと

#508b94 を2個登録したスウォッチをバイナリエディタで開くと以下の通り
[text]
00 01 00 02 00 00 50 50 8B 8B 94 93 00 00 00 00
50 50 8B 8B 94 93 00 00 00 02 00 02 00 00 50 50
8B 8B 94 93 00 00 00 00 00 08 30 B9 30 A6 30 A9
30 C3 30 C1 00 20 00 31 00 00 00 00 50 50 8B 8B
94 93 00 00 00 00 00 08 30 B9 30 A6 30 A9 30 C3
30 C1 00 20 00 32 00 00
[/text]

2色目を#945066に変更したスウォッチは以下
[text]
00 01 00 02 00 00 50 50 8B 8B 94 93 00 00 00 00
94 93 50 50 66 66 00 00 00 02 00 02 00 00 50 50
8B 8B 94 93 00 00 00 00 00 08 30 B9 30 A6 30 A9
30 C3 30 C1 00 20 00 31 00 00 00 00 94 93 50 50
66 66 00 00 00 00 00 08 30 B9 30 A6 30 A9 30 C3
30 C1 00 20 00 32 00 00
[/text]

最初の00 01と最後の00 00は定型ぽい
次の00 02が登録されてる色の数、
3つ登録してあるスウォッチは00 03で、58個登録されてるスウォッチは00 3Aだった。
(2進数、8進数、10進数、16進数相互変換で変換させてもらってます。)

次の00 00がよく分からないけど区切り?
その後の50 50 8B 8B 94 93がhex値、前半2桁だけが有効?で00 00で閉じる?

[text]00 08 30 B9 30 A6 30 A9 30 C3 30 C1 00 20 00[/text]も区切りかな

hex値ぽいところを以下のようにガーっと00にしてもちゃんと読み込む
[text]
00 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 02 00 02 00 00 50 50
8B 8B 94 93 00 00 00 00 00 08 30 B9 30 A6 30 A9
30 C3 30 C1 00 20 00 31 00 00 00 00 94 93 50 50
66 66 00 00 00 00 00 08 30 B9 30 A6 30 A9 30 C3
30 C1 00 20 00 32 00 00
[/text]
02 00 02 00からが本当の色設定?

phpのテスト

でhexからhueを取り出せた。

あと必要な事

.acoの色の格納のされ方と範囲指定しての取り出し方
phpでバイナリを読む方法
とか?
方向はあってるんのでしょうか…

とりあえずphpで読み込んでみた

辞書を引きながら、こんな感じに。

出力結果
[text]
00010002000050508b8b949300000000949350506666000000020002000050508b8b949300000000000830b930a630a930c330c1002000310000000094935050666600000000000830b930a630a930c330c1002000320000Array
(
[0] => 00010002
[1] => 50508b8b9493
[2] =>
[3] => 949350506666
[4] => 00020002
[5] => 50508b8b9493
[6] =>
[7] => 000830b930a630a930c330c100200031
[8] =>
[9] => 949350506666
[10] =>
[11] => 000830b930a630a930c330c100200032
[12] =>
)
[/text]

メモ
explode(‘区切り文字’,文字列);
explode(‘0000’,$str);

0000で区切ったけど、これだと#000が登場した時に区切り文字になってしまう。

メモ2
どうゆう風にしてけばいいんだろ
最初の2バイトを飛ばして、次の2バイトに格納されてる色の数を取得
前半00 00 RR RR GG GG BB BB 00 00で1セット
RR RRなどそれぞれの後半2文字を飛ばす
000830b930a630a930c330c1002000の前に出てくるRRRR GGGG BBBBを書き換える

ブラシ回転

飾り枠のコーナーに使えそうなブラシを作ったとして
回転させられるから4つ作らなくても大丈夫という話。

続きを読む