QA@IT
«回答へ戻る

回答を投稿

ご回答いただきありがとうございます。
すみません。説明が不足していました。
文章で書くよりコードを書いた方が伝わると思いますので
サンプルコードを記載致します。
以下のコードをデバッグするとメモリ上はPropertyItemは削除されている
ように見えるのですが、bmp.Saveでresponseを返して表示された画像のexifを
見るとまだ残っているという状態になっています。

private void Page_Load(object sender, EventArgs e)
{
    //読み込む画像ファイル名
    string imgFile = "C:\\1.jpg";

    //画像を読み込む
    Bitmap bmp = new Bitmap(imgFile);

    //Exif削除
    foreach (PropertyItem item in bmp.PropertyItems)
    {
        bmp.RemovePropertyItem(item.id);
    }

    //Responseを返す
    Response.ContentType = "image/jpeg";
    Response.Clear();
    Response.BufferOutput = true;
    bmp.Save(Response.OutputStream, ImageFormat.Jpeg);

    bmp.Dispose();
    Response.Flush();
}
ご回答いただきありがとうございます。
すみません。説明が不足していました。
文章で書くよりコードを書いた方が伝わると思いますので
サンプルコードを記載致します。
以下のコードをデバッグするとメモリ上はPropertyItemは削除されている
ように見えるのですが、bmp.Saveでresponseを返して表示された画像のexifを
見るとまだ残っているという状態になっています。

    private void Page_Load(object sender, EventArgs e)
    {
        //読み込む画像ファイル名
        string imgFile = "C:\\1.jpg";

        //画像を読み込む
        Bitmap bmp = new Bitmap(imgFile);

        //Exif削除
        foreach (PropertyItem item in bmp.PropertyItems)
        {
            bmp.RemovePropertyItem(item.id);
        }

        //Responseを返す
        Response.ContentType = "image/jpeg";
        Response.Clear();
        Response.BufferOutput = true;
        bmp.Save(Response.OutputStream, ImageFormat.Jpeg);

        bmp.Dispose();
        Response.Flush();
    }