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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■7341  Re[11]: Imageクラスの継承
□投稿者/ 渋木宏明(ひどり) -(2007/09/04(Tue) 10:16:16)
>
    > >全部のメンバなんか使います?
    >
    > 確かに、全部は使わないです。

    であれば、前に書いたように

    > 必要十分に Bitmap とメンバの構成が似ていて

    で我慢した方が余分なところで悩まなくて簡単だと思うんですけどねぇ。

    > >例えば、コレクションも「配列のようなもの」であって「配列ではないもの」なので
    (略)
    > これは、Hogeコレクションのhoge要素にhoge1とhoge2を追加する、
    > と理解しました。(n次元配列的な?違ってたらすいません。)

    そこは枝葉のとこです。

    メソッド内部でコレクションを使用しているわけですが、メソッドインターフェースが「配列を返す」になっているので「コレクションを返す」ことは出来ないのため、「ToArray() によって コレクションから配列を作成してそれを返している」んです。
    これは、Bitmap を返すべき局面で ExBitmap を返すわけにはいかず、ExBitmap.GetBitmap() で Bitmap を取り出して返すケースと似ていませんでしたか?

    > 教えていただいたサイトのやり方で、ExBitmap = Bitmapな感じになりました。
    > public static implicit operator Bitmap(ExBitmap exbitmap) { return exbitmap.GetBitmap(); }

    これは内部的には ExBitmap.GetBitmap() しているわけで、本質的には何も変わってないです。

    前にも書きましたが、個人的には、暗黙キャストのこういう使い方は良くないと思います。

    > しかし、>「Bitmap.Lock() を一時的にロックしてピクセル操作をさせるためのヘルパクラス」
    > のように、ピクセル操作をさせるためのクラスなら、
    > ttp://hidori.jp/downloads/junktest/TestPsedoBitmap-20060821.zip
    > のソースでも、同じではないかと思いました。

    使い道や取り回し方、向き・不向きが違います。

    PsedoBitmap は、Bitmap から内部的に int 配列を作ってそれを操作するようになっています。GetPixel(), SetPixel() が操作する対象は int 配列なので非常に高速です。

    その反面、int 配列を作ってしまったら Bitmap との関係は断ち切られてしまうため、表示等で Bitmap が必要になった時は ToBitmap() メソッドによって再度「Bitmap を作り出す」ねばなりません。これは比較的コストが高い操作です。

    もう一方の BitmapBits は、BitmapBits を new すると同時にコンストラクタの引数で与えられた Bitmap を LockBits() して、BitmapBits を Dispose() する時に Bitmap を UnlockBits() します。

    BitmapData が指すデータを直接操作するためピクセル操作の性能は PsedoBitmap を超えることはありませんが、Bitmap のデータを直接操作しているため、表示などの際に PsedoBitmap のように「Bitmap を作る」必要はありません。

    結果として、延々とピクセル処理だけを行って結果を最終結果を表示するようなパターン(いわゆる画像処理など)では PsedoBitmap が、ほどほどの量のピクセル処理と図形描画などの処理が混在するパターン(いわゆるペイントツールなど)では BitmapBits の方が有利であると推察されます。

    > やっぱり、暗黙のキャストにすがるしかないのでしょうか?

    「書き方」にこだわるならそうなりますが、↑でも書いたように、僕はよくない使い方だと思います。

    まぁ、修作とかの個人作品なら、自分が納得いくように書くのは止めません ;-)
記事No.7288 のレス /過去ログ18より / 関連記事表示
削除チェック/

■79367  絶対パス
□投稿者/ わかめ -(2016/03/25(Fri) 15:21:23)

    分類:[VB.NET/VB2005 以降] 

    VBを使って
    PictureBox1のImageLocationをcsvファイル(Microsoft excel)
    に保存したいのですがどうしたらいいか分かりません
    どのようにしたら書き込むことができるのか教えていただけませんでしょうか?
親記事 /過去ログ134より / 関連記事表示
削除チェック/

■83130  ADO.netの接続形態別の速度の違いについて
□投稿者/ 大谷刑部 -(2017/03/07(Tue) 15:36:32)

    分類:[.NET 全般] 

     お世話になっております。

    旧ADOの時代は、OLEDBProviderとODBC経由では速度に明らかに違いがありました。
    Oracle(8iの時代に)で比較実験をしたことがあるのですが、

    当時、VBからOracleにつなぐのに最速といわれていたoo4oとADOのOLEDBProviderのスピードの差は
    Recordsetのループレベルだとほとんどなく、
    OLEDBProviderとODBC経由の差の方が目に見えてありました。

    その当時のOLEDBProviderとODBC経由の差はオブジェクト階層が一階層多いからと説明されていた文書並びにサイトが
    多かったように記憶しています。

    ADO.netでの場合、そのあたりの違いは、どの程度なのでしょうか?
    ADO.netではOLEDBProviderも下位互換となり、
    上記の基準からすると、
    .Netproviderよりも1階層多くなるので
    ODBC経由同等に遅いように思いますが、
    OLEDBProvider経由とODBC経由の差はあるのでしょうか?

    今担当しているシステムでは、
    ADO.netですが.Netproviderではなく、

    SQLServerはOLEDBProvider経由、
    某F社製SymfowareはODBC経由で接続してます。

    理由は、.Netに変換する前がVB6でADO or RDOで接続していたため、
    そのままの接続形態でADO.netに移行したためと思われます。

    質問の意図は、数年に1度ある全面刷新時に、
    .Netprovider接続への移行を実施するかの判断材料の一つとしたいです。

    よろしお願いします。


親記事 /過去ログ142より / 関連記事表示
削除チェック/

■88868  Re[4]: SetupProjectアンインストールできない
□投稿者/ echo -(2018/10/05(Fri) 12:54:25)
    もしかしたら、PC内のインストールソフトのデータが破損していて、
    アンインストールができなくなっているのかも知れません。

    その場合は、一度、強制的にソフトをアンインストールするツールで一度きれいな状態にして、
    再度同一ソフトをインストール→アンインストールが可能かを試した方がよいかと思います。

    「アンインストール 強制 フリーソフト」で検索すると色々と見つかります。

    (例えば以下のようなサイト)
    https://www.gigafree.net/system/install/

    ちなみに、知り合いにアンインストールが出来なくなった時、ここに記載の
    「Revo Uninstaller」というものを使ったそうです。

    (フリーウェア使用の場合は自己責任でお願いします。)
記事No.88855 のレス /過去ログ153より / 関連記事表示
削除チェック/

■88869  Re[5]: SetupProjectアンインストールできない
□投稿者/ ぽんすけ -(2018/10/05(Fri) 14:00:27)
    No88868 (echo さん) に返信
    >
    > ちなみに、知り合いにアンインストールが出来なくなった時、ここに記載の
    > 「Revo Uninstaller」というものを使ったそうです。
    >
    > (フリーウェア使用の場合は自己責任でお願いします。)

    echoさん
    ありがとうございます。

    「IObit Uninstaller Free」で試してはみましたが、同じ結果でした。
    こちらも強制アンインストールソフトです。
    ソフトによって多少違うのでしょうか。試してみたほうがよいですね。
記事No.88855 のレス /過去ログ153より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -