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

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

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

ColorPaletteの宣言の仕方

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

■83624 / inTopicNo.1)   ColorPaletteの宣言の仕方
  
□投稿者/ ぷっくり (1回)-(2017/03/31(Fri) 10:32:52)

分類:[.NET 全般] 


ColorPaletteの宣言の仕方について教えていただきたいのですが
いつも255色の ColorPaletteを宣言するために


Dim img0 As Bitmap = New Bitmap(1, 1, PixelFormat.Format8bppIndexed)
Dim CLP1 As ColorPalette = img0.Palette

img0.Dispose()

のようにして、一度、画像を生成してから、
そこのパレットをコピーして使用しています。

何となくこの方法だとコードが冗長的な気がするので
画像を生成せずに直接カラーパレットだけを
宣言して生成したいのですが
どのようにすれば良いですか?




引用返信 編集キー/
■83627 / inTopicNo.2)  Re[1]: ColorPaletteの宣言の仕方
□投稿者/ Hongliang (519回)-(2017/03/31(Fri) 11:10:16)
ColorPaletteのMSDNの解説に
> ColorPalette オブジェクトを直接構築することはできません。 
> ColorPalette オブジェクトを作成した後で、特定のイメージに対して
> パレット サイズを操作することはできますが、これは許可されていません。
> ColorPalette オブジェクトを取得するには、Image.Palette プロパティを
> 使用します。 
とありますし、そんなものなんでしょう。

引用返信 編集キー/
■83628 / inTopicNo.3)  Re[2]: ColorPaletteの宣言の仕方
□投稿者/ ぷっくり (2回)-(2017/03/31(Fri) 11:18:31)
ありがとうございます。

ちなみにその解説はどこに書かれてありましたか?
私が開いたMSDNのページには

構築することはできません、 ColorPalette オブジェクトに直接します。 作成した場合、 ColorPalette オブジェクトでは許可されていない特定のイメージのパレットのサイズは、操作する可能性があります。 使用して、 Image.Palette を取得するプロパティ、 ColorPalette オブジェクトです。

と書かれてあり、翻訳がめちゃくちゃなので読み飛ばしていました。
 
引用返信 編集キー/
■83629 / inTopicNo.4)  Re[3]: ColorPaletteの宣言の仕方
□投稿者/ Hongliang (520回)-(2017/03/31(Fri) 11:29:41)
ColorPalette クラスって大書してある直ぐ下の、「その他のバージョン」からVisual Studio 2010を選んだときのページです。
このバージョンまでは基本的に翻訳者の方が訳されていたので、変な訳は稀でした。
current version(Visual Studio 2012以降かな)では完全に機械翻訳になっているので日本語は大体意味不明になってしまっています。
引用返信 編集キー/
■83630 / inTopicNo.5)  Re[3]: ColorPaletteの宣言の仕方
□投稿者/ ぽぴ王子 (41回)-(2017/03/31(Fri) 11:30:02)
ぽぴ王子 さんの Web サイト
No83628 (ぷっくり さん) に返信
> 私が開いたMSDNのページには
>
> 構築することはできません、 ColorPalette オブジェクトに直接します。 作成した場合、 ColorPalette オブジェクトでは許可されていない特定のイメージのパレットのサイズは、操作する可能性があります。 使用して、 Image.Palette を取得するプロパティ、 ColorPalette オブジェクトです。
>
> と書かれてあり、翻訳がめちゃくちゃなので読み飛ばしていました。

確かに普通に見るとそう書いてありますね。
ただ「翻訳がめちゃくちゃ」だから「読み飛ばしていい」というのだとちょっと違うのかなと。
本来ならば「自分で原文を読んで理解しろ」となるのだと思いますが(そのためかMSDNのページには原文のまま表示するボタンがあります)
それはちょっと厳しいので、試しにGoogle翻訳に投げてみました。

【原文】
You are not allowed to construct a ColorPalette object directly. If you created a ColorPalette object, you could then manipulate the palette size for a particular image, which is not allowed. Use the Image.Palette property to obtain a ColorPalette object.

【日本語訳】
ColorPaletteオブジェクトを直接構築することはできません。 ColorPaletteオブジェクトを作成した場合は、特定のイメージのパレットサイズを操作できますが、これは許可されていません。 Image.Paletteプロパティを使用してColorPaletteオブジェクトを取得します。

となるので、Hongliangさんの書かれている情報とほぼ一致するのかなと思います。

原文を読むと、つたない僕の読解力でも
「You are not allowed to construct a ColorPalette object directly.」

「ColorPaletteオブジェクトを直接構築することはできません。」
という意味で良さそうです。
引用返信 編集キー/
■83641 / inTopicNo.6)  Re[4]: ColorPaletteの宣言の仕方
□投稿者/ ぷっくり (3回)-(2017/03/31(Fri) 17:04:20)
ありがとうございます。

別のバージョンのページに書かれてありましたか。
ところで、
特定のイメージに対してパレット サイズを操作することはできますが、これは許可されていません。

操作できるが、許可されていない
ってこれってどういう意味ですか?
できるけど、できないって・・・
英語のページを見てもほぼ同じ意味で書かれてあります
 
引用返信 編集キー/
■83642 / inTopicNo.7)  Re[5]: ColorPaletteの宣言の仕方
□投稿者/ Hongliang (521回)-(2017/03/31(Fri) 19:23:00)
If you created a ColorPalette object, you could ...
は仮定法過去なので、現実に反する仮定です。
「もしColorPaletteオブジェクトを作れるなら...できる」(実際にはColorPaletteオブジェクトを作れないから、you could以下も実現できない)
引用返信 編集キー/
■83643 / inTopicNo.8)  Re[6]: ColorPaletteの宣言の仕方
□投稿者/ ぷっくり (4回)-(2017/03/31(Fri) 19:26:46)
No83642 (Hongliang さん) に返信

なるほどそうでしたか
これも誤訳だったのですね・・・
 
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ