質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • C#

    6880questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • ASP.NET

    510questions

    ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

  • PDF

    247questions

    PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

C#による画像操作による画像劣化に関して

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,383

ShintaroIshida

score 70

システムに事前登録されている画像をユーザーが、操作してPDFに書き出す処理を実装中です。
(画像操作は、拡大・縮小・トリミング・回転)

元画像の解像度は高めなのに処理を通し、PDFで出力するとかなり画像がぼやけた感じ(劣化)します。
実装は、以下のサイトのソースを参考(というかほぼ同じソースです)にしています。

拡大・縮小
http://dobon.net/vb/dotnet/graphics/drawimage.html#scaling

トリミング
http://dobon.net/vb/dotnet/graphics/triming.html

上記を踏まえて以下の質問があります。

・Bitmap オブジェクトを通せば通す程、画質は劣化するとどこかのサイトで見ました。
   これらを回避する方法はあるのでしょうか?
   (画像操作の各フェーズで、一回一回上記の様にBitmapオブジェクトを準備しているので)

・そもそもこの画像操作の方法がやり方して古く、もっと良い方法があるのでしょうか?
  (画質の劣化しない)

・元画像から拡大すると画質が劣化するのは分かるのですが、縮小した場合でも
 明らかに画質が劣化しています。こういうものなのでしょうか?

※追記
PDFに限った話でもなく、イメージの編集等の操作のご経験やご意見でも構いません。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

ご提示いただいたサイトに下記ページがありましたが…参考になさってみてはいかがでしょうか。

補間方法を指定して画像を拡大、縮小(スケーリング)表示する
http://dobon.net/vb/dotnet/graphics/interpolationmode.html

元画像の解像度は450~600dpi程度ありますでしょうか。
200dpi程度ですと劣化は否めないかと思われます。

それとPDFにも何故か解像度の概念があるので、そちらも参考にしてみるとよいかもしれません。

http://blog.antenna.co.jp/PDFTool/archives/2007/01/25/

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/31 13:50

    yu-ri 様
    回答ありがとうございます。

    ご提示頂いたURLを確認しました。
    ```C#
    System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
    ```
    上記を指定しましたが、変化は特にありませんでした。
    (変化しているかもしれませんが、ディスプレイ・印刷結果の目視確認ではわからない程度です)

    解像度に関しては、
    WEBシステムから投稿される画像が72dpi。
    PDF側の解像度は、96dpiで設定されている認識です。

    PDFの出力には、ActiveReports(http://www.grapecity.com/tools/products/activereportsnet9)を利用しております。
    解像度が変更できるかどうかの調査を行ってみます。

    キャンセル

0

PDF画像の確認方法ですが、もしかして印刷してボヤケているという話でしょうか?
(同一モニタ上で確認して元画像から明らかに劣化しているという話でしたら申し訳ありません)

モニタの見え方と紙面上の見え方は全く異なるので、元解像度が72dpi程度ですとどう加工しても基本ぼやけて見えます。
紙面上でぼやけないように見えるためにはもっと高解像度が必要になります。
(例えば、週間マンガ雑誌の荒い紙面でも300dpi程度必要だったかと)

画像によりますが、普通のA4くらいだと600dpi~くらいはないとぼやけて見えるかと思います。
当然ですがこれは加工後の話です。拡大などを考えたら元画像はもっと必要だと思います。

余談ですが、もしモニタ上でPDF確認を行った時にボヤケているという話でしたら、もしかしたら表示するプログラムがアンチエイリアスをかけていたためそう見える、という可能性もあるかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    C#のワイルドカード文字列検索

    こんにちは、現在csvファイルの読み込み分割する機能を作っているのですが、以下のような場合があるとします 10001,"vs "v2Gundam", "second V"",1,

  • 解決済

    「dataGridViewにフォーカスがある時」という条件でif文を作りたいのです。

    いつも大変お世話になっております。 dataGridViewにフォーカスがある時という条件でif文を組みたいと思っております。 どのようにプログラムを書けばよろしいでし

  • 解決済

    jQueryでトリミング

    jQueryで画像をトリミングしたいと考えています。見よう見真似でプログラムを作成したのですがトリミングした画像がどうしても出ないです。よろしければ、ご鞭撻のほどよろしくお願いしま

  • 解決済

    C# ファイルの検索

    実現したいこと たくさんあるフォルダの中から、(いくつ存在するかわからない)ある名前のファイルを見つけ出し、そのファイルの場所がわかるよう、パスをテキストボックスに出力するプログ

  • 解決済

    ファイルを読み込んで出力するには何を使えばいいですか

    前提・実現したいこと とても漠然とした質問ですみません、visualstudioでファイルを読み込んで出力することをしたいのですが 何から手を付けていいのかわかりません…

  • 受付中

    C#のSaveFileDialogを用いる際のパス指定が

    初心者です。よろしくお願いいたします。 microsoft visual C# 2010 expressのWindowsフォームアプリケーションを利用して 画面上のボタンを

  • 解決済

    ASP.NET MVC5でグローバルIPを取得するにはどうしたらよいでしょうか?

    ASP.NET MVC5、 C# で開発をしています。 コントローラーで、HTTPリクエストの呼び出し元のグローバルIPアドレスを取得したいのですが、方法が分かりません。 どな

  • 受付中

    電卓について

    電卓を作っています。 キーボードからアルファベットを入力したとき Textboxにアルファベットが入力できないようにしたいです。 もしくは、数字だけ入力出来ないようにした

同じタグがついた質問を見る

  • C#

    6880questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • ASP.NET

    510questions

    ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

  • PDF

    247questions

    PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。