C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: PSD画像の情報を抽出する方法


(過去ログ 122 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■72950 / inTopicNo.1)  PSD画像の情報を抽出する方法
  
□投稿者/ Aria (10回)-(2014/08/03(Sun) 01:05:29)

分類:[C#] 

現在、PSDファイルの画像情報を読み取るツールの開発を行っています。
抽出したい画像情報としては、レイヤ毎の以下の情報を取得したいと考えています。

そこで、以下の参考サイトよりPsdparser(C#)を取得し、
取得した情報をCSVファイルに書き出す機能までは作成することができましたが、
PSDファイルから画像情報を読み取ってくる方法がわかりません。

どなたかわかる方がいれば教えては頂けないでしょうか。
どうしても作成する必要があり非常に困っています。
よろしくお願いします。


---------------------
取得したい情報
---------------------
レイヤー名
属性 : Textかどうか
塗り色
不透明度
効果カラー :
フォントサイズ
TextBox高さ
TextBox幅
テキストアライン
文字色 : 例 0x4A4A4A
フォント名 : 例 RIMillenniumeLight
コンテンツ
ドロップシャドウのカラー
ドロップシャドウの距離
サイズ
-----------------------------------

---------------------
参考サイト : C#でPSDファイル読み込み まちみのな
---------------------
http://tmp.junkbox.info/e40.html
---------------------

---------------------
ソースコード置き場(OneDrive)
---------------------
https://onedrive.live.com/redir?resid=B25FEBC048EFC0C8%21107

【手順】
1.ソースコードをダウンロードして実行

2.ツールの画面が表示されるのでPSDファイルをD&Dする
(サンプルのPSDをフォルダに入れておきました)

3.PSDファイルの情報がツールに表示されたら「情報取得」ボタンを押すと
 DドライブにCSVファイルが作成されます。

【コード位置】
Form.csのprivate void button1_Click()に記述しています
---------------------

---------------------
開発環境
---------------------
・Windows7
・Microsoft Excel 2010
・Microsoft Visual Studio Express 2012 for Windows Desktopで作成
---------------------
引用返信 編集キー/
■72961 / inTopicNo.2)  Re[1]: PSD画像の情報を抽出する方法
□投稿者/ Aria (11回)-(2014/08/05(Tue) 06:36:49)
どなたかわかる方はいないでしょうか。
どうしても作成する必要があり、困っています。
どうか、教えて下さい。
よろしくお願いします。
引用返信 編集キー/
■72962 / inTopicNo.3)  Re[2]: PSD画像の情報を抽出する方法
□投稿者/ Azulean (331回)-(2014/08/05(Tue) 07:22:34)
私自身は PSD フォーマットについて知識を有しませんが、アプローチに関してだけ。

どうしても作り上げる必要があるなら、自分でフォーマットについてきちんと勉強し、コードを組み上げるのが正道ではないでしょうか?
先人の知識・経験を頼ることができる、あるいは成果物(ライブラリ)を利用できるならそれにこしたことはないですが、自分の目的にそのまま合致する情報を得られることは多くありません。
うまく情報を得られないのであれば、自分自身で大まかにどんなフォーマットか知ってライブラリでできることを見極める、サンプルコードを徹底的にデバッグして糸口をつかむなど、相応の努力が必要だと思います。


最初のスタートとしてもその "Layer" に対応する XmlNode にどんなノードが含まれているかを調査することからでしょう。
そこに欲しい情報がないのなら、そのライブラリではできない可能性も視野に入れて調査・検討すべきです。


// これ以上の具体的な回答はできませんのでご留意ください。
引用返信 編集キー/
■72963 / inTopicNo.4)  Re[2]: PSD画像の情報を抽出する方法
□投稿者/ オショウ (140回)-(2014/08/05(Tue) 08:37:53)
> どなたかわかる方はいないでしょうか。

  『PSD フォーマット』で検索したら・・・

  ttp://wazalabo.com/psd-library.html
  ttp://helpx.adobe.com/jp/photoshop/using/file-formats.html

  上位にこんなものがヒットした。

  これでできないんですかネ〜

※ Azulean が書かれているとおり、ファイルフォーマットは公開されている
  情報だから、そのフォーマットを取得そて、ファイルをバイナリレベルで
  読めば、結構できてしまう。

以上。頑張って下さい!
引用返信 編集キー/
■72970 / inTopicNo.5)  Re[3]: PSD画像の情報を抽出する方法
□投稿者/ Aria (12回)-(2014/08/06(Wed) 11:21:09)
Azuleanさん、オショウさん返信ありがとうございました。

フォーマット等の勉強を行っていきます。

しかし、至急このツールを作成する必要があり、
大変申しわけないのですが、どなたが協力してはいただけにでしょうか。
本当に困っています。
引用返信 編集キー/
■72971 / inTopicNo.6)  Re[4]: PSD画像の情報を抽出する方法
□投稿者/ 774RR (169回)-(2014/08/06(Wed) 12:25:58)
それって要するに仕事の依頼だよね。仕事なら対価なしでは誰も請けないと思われるっす。
その手のサービスを行っている業者に依頼するのが早そうです。
もちろん費用はかかるけど。

引用返信 編集キー/
■73090 / inTopicNo.7)  Re[5]: PSD画像の情報を抽出する方法
□投稿者/ Aria (13回)-(2014/08/18(Mon) 10:38:12)
どなたか方針だけでも教えてください。
本当に困っています。

せめて、以下の情報だけでも取り出せないでしょうか.
------------
フォントサイズ
TextBox高さ
TextBox幅
テキストアライン
文字色 : 例 0x4A4A4A
フォント名 : 例 RIMillenniumeLight
------------

引用返信 編集キー/
■73101 / inTopicNo.8)  Re[6]: PSD画像の情報を抽出する方法
□投稿者/ テスト (5回)-(2014/08/19(Tue) 09:58:23)
オショウさんが挙げたサイトを参考に、バイナリエティタとにらめっこしながら頑張ればいけそうですね。
ただ、2週間近くたっているのに急いでいます、困っていますとしか言わない人を
助ける人は居ないと思いますよ?
自分で作る気が無いのであれば774RRさんがおっしゃった通り、業者に頼んで下さい。
引用返信 編集キー/
■73109 / inTopicNo.9)  Re[7]: PSD画像の情報を抽出する方法
□投稿者/ 774RR (170回)-(2014/08/19(Tue) 18:54:42)
方針だけなら少し示してあげられるだろう。

No72963 のリンク先にてあげられている公式資料を見よう。
http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/

これによると PSD ファイルというものは
「ファイルヘッダ」「色モードデータ」「イメージリソース」「レイヤー&マスク」「イメージデータ」
の順に並んでいることがわかる。

俺は Photoshop 使ったこと無いので以下は妄想になるけど、今回取り出したいのは
Type Tool Info 'tySh' (Photoshop 5.x) または
Type tool object settings 'TySh' (Photoshop 6.x)
のように推測されるので
Additional Layer Information のところから公式ファイルイメージ解説書を読み解いていけばいい。

書かなきゃならないプログラムは
・ファイルを開く
・「ファイルヘッダ」を検証し、妥当な PSD 形式かを調査
・レイヤー&マスクセクションの場所を算出
・ Additional Layer Information の場所を算出
・ tySh または TySH を分析して出力
ってことになるだろう。

で、これを一気にプログラムにするのは困難だと思うので皆様のアドバイスのとおり
・バイナリエディタでファイルの中身を見てみるといい
・ファイルの先頭にある「ファイルヘッダ」を自分の目で分析してみるといい
・色モードヘッダを「読み飛ばす」方法を理解してみるといい(するとそこがイメージリソースだ)
・イメージリソースを以下同文

具体的コードは興味がそそられないのでパス。
興味があっても PSD ファイルという代物が手元に無いので何もできん。

・こーいうコードを書いてみました。
・***のように動いてほしいのに
・+++のように動いてしまいます
・どこがバグっているでしょうか?
という質問なら誰か答えてくれるだろう。

0から100まで全部教えてくださいとか、自分の代わりに作ってくださいとかならお断り。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -