Microsoft Silverlight 2.0 その3at TECH
Microsoft Silverlight 2.0 その3 - 暇つぶし2ch623:デフォルトの名無しさん
09/04/06 10:44:45
>>615
ごめん、逆なんだな。
実行時に、画像生成して表示したりとか音作成して鳴らすとかということをしたいんだよ。
たとえば画像においてはBitmapImageをストリームからインスタンス生成するとき、jpgかpngにしか対応してない。
だもんだから、jpgフォーマットやらpngフォーマットにしたがってメモリーストリームに書き込まんとインスタンスが生成できん。
bmpフォーマットだったら、ファイルヘッダー、インフォヘッダー、イメージデータを書くだけですむ。
(Silverlight 3でようやくWritableBitmapがでたようだがしかし結局のところ対応フォーマットは変わらずじまい?)
動画もそう。asfやらwmvフォーマットにしたがって(圧縮して)メモリーストリームに突っ込まんとインスタンス生成ができん。
音声も、エコーやらディレイやらリバーブやらをかけて鳴らしたいんだがそれができない。
エコーやディレイ等のエフェクト処理は自作するにして、バッファに書き込んだ音声データを鳴らせるようなってほしいんだよ。
この辺ほとんどFlashだとできるんだけどなぁ。

624:デフォルトの名無しさん
09/04/06 10:57:33
WriteableBitmapはピクセル触れる
動的に音や動画を再生するのも可能らしい
URLリンク(community.irritatedvowel.com)

625:デフォルトの名無しさん
09/04/06 13:04:47
>>623
BMPはSL3なら、32bitRGBとかのデータ部分をほぼそのまま突っ込めば
WriteableBitmapで作るのが可能だよ。表示でもブラシでもOKだ。
>>603がぼやいているように、WritePixelsなんて高尚なものはないので
インデックスで直接アクセス&アクセス。昔懐かしBMPの作成手順。

>>624 WAVが扱えるとは知らなかった。まあでも読めて当然だけどね。
どうせ内部じゃ展開して同じものになってるんでしょうから。
でも、こうなってくると、、、世界最速のFFTが欲しくなるね。冗談抜きに。w

626:デフォルトの名無しさん
09/04/06 19:13:45
>>625
音声にエフェクトかけたりしたいってことかな?
というわけで、最初に思いつく「C# FFT」でぐぐって一番上にきたもの。
URLリンク(www.vector.co.jp)
ソースごとコンパイルして良いみたいに書かれてた。
FFTなんて、ソースコード自体を再利用できる典型的な例だよな。

念のため、画像とかの2次元データに適用するなら。
URLリンク(ja.wikipedia.org)
つまり、2次元DFT(2次元フーリエ変換も同様だが)はf(x,y)を、各行ごとに1次元DFTし、その結果をさらに各列ごとに1次元DFTする事と等価である。
ここで、1次元DFTの計算はFFTのアルゴリズムで高速に計算できる。そのため実用上は2次元DFTも、2次元FFTとして計算される。

627:623
09/04/06 19:32:25
>>624
おおこれは参考になる。
>>625
そうなんだ。教えてくれてありがとう。なんかVB6時代を思い出すな。
どっちにしてもSilverlight3待ちか。
別スレでSilverlight2でファミコンエミュを実装している人がいるが、あれはどうやってるんだろう。

628:デフォルトの名無しさん
09/04/06 19:48:16
>>627
URLリンク(matarillo.com)
俺はここで書かれてるものを、PngEncoderをprivateな内部クラスにしておいて、
.NET2.0のBitmapと同じようなメソッドだけ公開して使ってる。
たぶんこれの元ネタは、
URLリンク(www.codeplex.com)

629:623
09/04/06 20:05:16
>>628
ああ、なるほどね。PngEncoderつかってるんか。

630:デフォルトの名無しさん
09/04/06 20:11:34
>>626
すごいな。
こういうのをチョチョイノチョイで使いこなせる工学系の人が羨ましく感じるよ♪
俺には時系列変化するデータからアナログ的なフィルターっぽく、何某かの特徴成分を
抽出できるという事までは何となく理解できるけど、実物を使いこなせない。
応用先も、トレンド解析とか、音声や画像のノイズフィルタとかが思いつく程度。。。

631:デフォルトの名無しさん
09/04/06 21:02:24
>>626
教科書レベルのFFTは当然ソースコードが利用できるでしょう。
が、残念ながらそれは世界最速!ではないね。おそらく。

2次元DFTはいわゆるJPEG圧縮のコア部分だね。細部を問題にしなければ、
その応用でJPEG圧縮が簡単に実現できる。偶関数拡張してDCT。

>>628-629
PNGはgz圧縮が使えれば、すぐに出来るようなものだがZLIBとかは他から持ってこないと無い。


でも、SL3になれば結局、WriteableBitmapが登場して独自の画像エンコーダなんかで
頑張っている人たちの努力は、ほとんど無駄になるってことで、
こういう展開は結構理不尽だなぁと思うけどね。先端だったものが標準になる悲しさ。

3D対応のFlash10のベータが登場し、PV3D関係者を大量に凹ましたの同じような光景だ。

632:デフォルトの名無しさん
09/04/06 21:40:09
ただ使うだけの人間には、そんな先端より標準入りしてくれる方がありがたいな。
ええ、どうせフリーライダーですとも。

633:デフォルトの名無しさん
09/04/06 22:03:48
.NET開発ってさ、とにかく下のレベルでごりごりコード書かないようにすることが大事だと思うんだよね。
そんなんやってもすぐにMS側でバージョンアップされたり、いいライブラリが安く販売されるようになったり。

634:デフォルトの名無しさん
09/04/06 22:09:27
効率悪いのはわかるけど、勉強にはもってこいかな~と

635:デフォルトの名無しさん
09/04/06 22:48:23
>>633
まあ、そういうことなんでしょうね。でも、そうなると奇抜なアイディアによってではなく
ほとんど事業の規模だけで優劣が決まってしまうような感じで、
一発逆転的な”面白み”みたいなものは相当に少なくなるねえ。

636:デフォルトの名無しさん
09/04/06 22:56:54
趣味でやるならそれでいいから、そんな話はチラシの裏にでも書いてろ

637:デフォルトの名無しさん
09/04/07 07:08:56
別にそんな突っかからんでも・・・。
君は君なりに、今後もごりごりと両方の意味で低レベルなコードを
書いてればいいと思います。

638:デフォルトの名無しさん
09/04/07 08:56:06
今までごりごりとやってた部分にかける労力をその上の部分の機能向上とか生産性のアップに向けるためのもんだろ.NETは。
そういいながらGUIからパーシステンスまで自前ライブラリを作っちまったが。これより下のレイヤーでごりごりはあまりしたくないなぁ。

639:デフォルトの名無しさん
09/04/07 13:14:43
URLリンク(blogs.msdn.com)

640:デフォルトの名無しさん
09/04/07 13:19:06
とっととSL3に乗り換えるのが正しいような気がしてきた。情報ないのはSL2と似たようなもんだし。

641:デフォルトの名無しさん
09/04/07 20:08:57
URLリンク(programmerpayback.com)
URLリンク(nk9klifelog.spaces.live.com)

OnApplyTemplateのオーバーライドがマトモに動作せずに、ChildなUserControlへの参照が取得できない例ってある?

642:デフォルトの名無しさん
09/04/08 18:26:56
>>641
呼ばれる順番を自分で十分にテストしてないので、今ちょっとはっきりは分からないけど
OnApplyTemplateがInitializeComponentの段階で呼ばれるんだとすると取れないんじゃない?
だからUserControlはTemplateと相容れないものなんだと解したんだけど。どうなんでしょう?

643:デフォルトの名無しさん
09/04/08 19:36:50
>>642
レスあり。いや、実は俺自身はまだ困ったことないんだけど、
それに近い話を聞いたことがあったので、何か他のことが原因なんじゃないかと思って。
ところで、UserControlはTemplateと相容れないってどういうことなんでしょうか?

URLリンク(pagebrooks.com)
URLリンク(bbs.wankuma.com)
URLリンク(d.hatena.ne.jp)
ここらへんひとまとまりでよくわかるサンプルとか欲しいというか、とっとと確認しなきゃいかんなあ。
「XAMLによって」デザイナとコーダが完全に分業できるようになるっていう理由もよくわからんし。
WinForm2は、記述量こそ多いものの、もっと簡単にいろいろやってたじゃないかと言いたくなるw
うだうだ言う前にとっとと確認しますすいません。

644:デフォルトの名無しさん
09/04/08 19:50:05
WinFormsではコントロールの見た目を自由にいじろうと思ったら
いちいちコントロールを継承しないといけないだろ

UserControlは基本的にテンプレートを使って見た目を差し替えることができない
再利用を考えずにXAMLべったりでてっとり早くコントロール作るためのもの
クラスライブラリ作ったりするなら使っちゃダメ

645:デフォルトの名無しさん
09/04/08 19:57:37
643だけど、他のことが原因というか、伝え聞いた話でほんとかどうかもよくわからんというのが真実だな。
あとどうでもいいけど、WinForm2のドキュメントエクスプローラみたいにというか、
XAMLをYAMLみたいにw書けたら、もう少し見やすいのにとか思ったりする。

646:デフォルトの名無しさん
09/04/08 20:00:30
>>644
おお、すばやいレスあり。後からUserControlにテンプレート適用とかできないの?

647:デフォルトの名無しさん
09/04/08 21:14:36
おっと名無しさんで混乱してきたぞ。>>642だけど。
>>643 UserControlに関する詳細なドキュメントってどこにも存在しないから、
おそらく誰も完全には分からない。少なくとも使う側では。
特にSilverlightに関しては実験例もない。ここはひとつ人柱になってもらうしか。

>>642は自分で前にUserControlにテンプレートは適用できないんだろうか
思って試してみたことがあって、結局出来なかったという経験にもとづくレスでしかないので
正しいかどうかは不明。でも、UserControlはインスタンスが生成されるがかなり遅く、
メインのLoaded以降あたりで、その前に適用されるTemplateでアクセスすることは出来ず
適用できないとかそんな感じだろうというのが自分の達した結論。
>>646 後からTemplateも考えたけど、結局その道は無かった気がする。
TemplateはおそらくVisualツリーの生成段階でしか適用できないんだろうよ。
単なる枝の差し替えだったら後から出来ても良さそうなんだけどね。
ただ、これは全てSL2での実験だから、SL3で違うことになってたら申し訳ない。

648:デフォルトの名無しさん
09/04/08 21:15:39
デザインとロジックを分けるのは、冗長になるのは確か。パフォーマンスも低下する。
でも、ロジックのコードに一切触れることなく、XAMLだけで色や概観のみならず
VisutalStateまで含めた全デザインの変更を可能にしてしまいましょうってのが
分離で、そうするためには欠かせないTemplate。でも、こうしておけば、
コードのコの字も解らないデザイナとも一緒に仕事が出来るという点において素晴らしい。

UserControlでも何でもできるけど、完全再利用&カスタマイズ可能な
コントロールとするためにはControlでやるしかないんだとおも。

649:デフォルトの名無しさん
09/04/08 21:53:33
UserControlがテンプレートに対応してないのは制限じゃなくて使い分け

650:643
09/04/08 22:05:20
>>647
コードで確認もせず質問したのに、大変参考になる情報ありでした。
UserControlはPanelをクラス化して再利用に使うみたいなもので、
入れ物にすぎないUserControl自体にはデザイン適用できないけど、
その子要素のControlにはデザイン適用できるだろうとか安直に考えてた。
なんで、OnApplyTemplateメソッドが気になったりしたわけだけど、それも的外れかな。
とりあえずまず書いて確認してみる。

651:デフォルトの名無しさん
09/04/08 22:18:53
>その子要素のControlにはデザイン適用できるだろうとか
そのコントロールがテンプレートに対応してるなら親がUserControlだろうとできるに決まってるだろ
PageだってUserControlなんだしできないわけがない

652:デフォルトの名無しさん
09/04/08 22:44:09
>>649
それは、絶対的に出来ないのではないってこと?どっち?
UserControlベースでもTemplate使う道があるんであれば、
それはそれで意外と役に立つ訳で、そこが重要だよ。

>>650
ヘルプすら見られない状況において過去の記憶のみを頼りに書いてるもので、
まったくの嘘かも知れないから確認して下さい。
てか、何かこういうことだってのを発見したら教えて下さい。

653:デフォルトの名無しさん
09/04/08 23:09:35
>>651
良く分かってないですね。UserControlの中にControlを置いたものに
テンプレートが適用できるってのは良いよ。それは普通の使い方だ。

Controlの中にUserControlを置いたときに、
それがいつ初期化されるかってところで、UserControlを含む
ControlにTemplateが適用できないんじゃないかというのがこの問題。

まあ、素直に中身は全てControlでやれば済むのかもしれないけど、
UserControlの簡易さってのは捨てがたく、絶対的に相容れないものなのか否か。

654:643
09/04/08 23:27:51
>>652
同感です。慎重なご意見に感謝します。

>>653
俺としてはControlにUserControlを持たせるようなことはしたくないが、
実際にそういう使い道ってあるの?
自分からした質問なのに、話をずらすようで申し訳ないけど。

655:デフォルトの名無しさん
09/04/08 23:49:51
>>654
完全なデザインとの分離にはならないけど中間的な分離によって、
パフォーマンスを最大化する場合なんては生じるね。
Controlにしてすべて外部に持たせるととにかく冗長になるけど、
UserControlであれば、かなりすっきり書ける。
でもカスタマイズ性は確保したいといったところ。
もちろん、こんなの一般にはおすすめ出来ないが。

656:デフォルトの名無しさん
09/04/09 01:40:38
Threadを起こして、その中からUserControl派生のクラスのインスタンスをnewしようとしたら
UnauthorizedAccessExceptionがInitializeComponentで発生してしまうんだけど、
そういうもの??

657:デフォルトの名無しさん
09/04/09 01:57:12
>>607
> 高度なものは総じてクローズドであってしかるべき。

実に気持ち悪いご意見だw

658:デフォルトの名無しさん
09/04/09 08:26:52
>>657
まぁ無能な乞食には絶対受け入れられない価値観ではあるよね。

659:デフォルトの名無しさん
09/04/09 10:34:51
>>653
>>655
一般にはおすすめできないって、自分でもやったことなさそうじゃないか。中間的な分離って何だ?
具体例も必然性もないようだから、そういうことはすべきじゃないと思う。

660:デフォルトの名無しさん
09/04/09 10:43:55
>>656
.NETでは、UIを生成したスレッドではない別のスレッドからそのUIへアクセスするには、
いろんな手順とか決まりごとがあるんだが、それに反してない?
URLリンク(social.msdn.microsoft.com)

661:656
09/04/10 13:20:25
new してるだけなんですけどねー。
それが駄目なのかもしれませんね。
決まりごと調べてみます。

662:デフォルトの名無しさん
09/04/11 13:40:58
逃げられすぎ。もうだめかもわからんね。

663:デフォルトの名無しさん
09/04/11 15:48:21
silverlightでは別スレッドでコントロールを表示する方法が無いので
newした段階で例外が送出されるみたいだな

UIスレッドのコントロールの子にした段階で例外が出るより、デバッグがやりやすくていいね

664:デフォルトの名無しさん
09/04/12 20:15:33
>>662
?

665:デフォルトの名無しさん
09/04/12 21:25:50
>>664
Flash厨の発症です

666:デフォルトの名無しさん
09/04/14 13:00:20
>>645
×:ドキュメントエクスプローラ → ○:ドキュメントアウトライン

667:デフォルトの名無しさん
09/04/14 14:17:11
URLリンク(www.infoq.com)
>CBS College Sportsを通じ、SilverlightはNBA、NCAAのイベントを
>放送し、BlockbusterのMovieLinkおよびNetflix’ Instant Watchの
>ストリーミングを提供する。

コスト抑える、とか一言で言われてしまいそうなのだけど
そこまで高度ではあるけど可用性に難がある環境…これは
受け入れられるんだろうか…

668:デフォルトの名無しさん
09/04/16 22:11:37
マイクロソフト、研究部門Live Labsをリストラ―研究者を半数に削減
現在の経済情勢が一因
URLリンク(www.computerworld.jp)

マイクロソフト、フライトシミュレーターゲーム開発部門を閉鎖
URLリンク(www.technobahn.com)

IEの市場シェアが過去最低を記録―3月末時点で66.8%
ライバルのFirefoxは22%で過去最高に
URLリンク(www.computerworld.jp)



669:デフォルトの名無しさん
09/04/16 22:19:50
また性懲りもなく現われたよコイツ。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch