Visual Studio 2008で作業しています。PNG画像を描画して再度保存しようとしています。C#でのPNG画像の問題
私は、次の操作を行います。
private Image img = Image.FromFile("file.png");
private Graphics newGraphics;
そしてコンストラクタで
:ソリューションの構築newGraphics = Graphics.FromImage(img);
にエラーを与えません。私はそれを実行しようとすると、私はこれを取得:
A Graphicsオブジェクトは、インデックス付き ピクセルフォーマットを有する画像から を作成することはできません。
私はC#で画像を使用する経験はあまりありません。これはどういう意味ですか、これをどのように修正できますか?
EDIT:デバッグにより、画像にformat8bppindexed
のピクセル形式があることがわかります。
私はGraphicsクラスを使用できない場合はどうすればよいですか?
EDIT2:thisを読んだ後、GDI +で作業するときJPGファイルに固執するのがよいと思いますが、
EDIT3:私は、ステートメントを使用して:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
この方法では、任意の運? http://www.c-sharpcorner.com/UploadFile/rrraman/graphicsObject08232007102733AM/graphicsObject.aspx – Greg
私は常にGraphicsオブジェクトでPNGファイルを使用しています。使用しているPNGファイルへのリンクを投稿すると、間違っているものが表示されます。 – MusiGenesis
内部的にGDIはビットマップで動作します。JPGは圧縮されており、生データを処理するための圧縮イメージを持っていません。あなたのイメージは8bppIndexedです。これはピクセルデータではなく色がパレットに格納されているビットマップ形式です。 Graphicsオブジェクトはピクセル値を直接変更することはできません。変更されないためです。あなたはそれを24bppRGBに変換する必要があります – badbod99