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

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

新規登録して質問してみよう
ただいま回答率
85.31%
C#

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

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

解決済

1回答

4114閲覧

【C#】BitmapFrame.Createで「 この処理を完了するために必要なイメージング コンポーネントが見つかりませんでした。」が発生する

auchan

総合スコア4

C#

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

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

0クリップ

投稿2022/11/09 10:12

前提

C#でsystem.windows.media.imagingのBitmapFrameを使用したプログラムを作成しました。
デバッグ環境では問題なく処理できたのですが、本番環境で動かしたところエラーとなり失敗してしまいます。

###原因
自分が調べた限りでは本番環境にpresentationcore.dllがないためだと考えているのですが、プログラムと同階層にコピーしても状況は変わりませんでした。
.NetFramework 4.8に含まれているものだと思っていたのですが、そうではないのでしょうか。
海外の記事ですが「https://stackoverflow-com.translate.goog/questions/16941520/exception-on-bitmapframe-create-bug-in-wpf-framework?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=sc」
の中の解決方法にBitmapFrame.csに関数を追加する?方法もあるようなのですが、方法がわかりませんでした。
お力をお借りできないでしょうか。

発生している問題・エラーメッセージ

2022/11/09 18:50:04 この処理を完了するために必要なイメージング コンポーネントが見つかりませんでした。 場所 System.Windows.Media.Imaging.BitmapDecoder.SetupDecoderFromUriOrStream(Uri uri, Stream stream, BitmapCacheOption cacheOption, Guid& clsId, Boolean& isOriginalWritable, Stream& uriStream, UnmanagedMemoryStream& unmanagedMemoryStream, SafeFileHandle& safeFilehandle) 場所 System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache) 場所 System.Windows.Media.Imaging.BitmapDecoder.Create(Stream bitmapStream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption) 場所 System.Windows.Media.Imaging.BitmapFrame.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy) 場所 System.Windows.Media.Imaging.BitmapFrame.Create(Stream bitmapStream)

該当のソースコード

C#

1 private void photoTopAndBottomCheck(string filePath) 2 3 { 4 5 BitmapImage bmpImage = new BitmapImage(); 6 7 FileStream stream = System.IO.File.OpenRead(filePath); 8 bmpImage.BeginInit(); 9 bmpImage.CacheOption = BitmapCacheOption.OnLoad; 10 bmpImage.StreamSource = stream; 11 BitmapFrame frame = BitmapFrame.Create(stream); 12 BitmapMetadata metaData = (BitmapMetadata)frame.Metadata; 13 14 }

補足情報(FW/ツールのバージョンなど)

デバッグ環境:Widows pro 10、.NetFramework 4.8
本番環境:Windows Server 2019、.NetFramework 4.8

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matukeso

2022/11/09 11:50

例外発生時、filePathの指すファイルは何ですか? jpg/png/bmp/webp/heic?
退会済みユーザー

退会済みユーザー

2022/11/09 12:55

> 本番環境:Windows Server 2019、.NetFramework 4.8 何を作っているのか書いてないので分かりませんけど(ちゃんと質問に書きましょう)、Session 0 分離というセキュリティ対策による制約の影響はありませんか?
auchan

2022/11/10 05:51

> matukeso 様 .jpgです。 >SurferOnWww 様 目的や背景を詳しく書くべきでした。申し訳ございません。
guest

回答1

0

自己解決

イメージファイルの頭に「~tmp」とあるファイルを処理しようとすると発生するエラーでした。
私が思っていたライブラリ不足などによるエラーではなかったため、この質問自体適切ではないので一度回答とさせていただきます。
ご協力いただいた方々ありがとうございました。また、丸投げな質問の仕方で申し訳ございませんでした。

投稿2022/11/10 05:56

auchan

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問