1

プログレッシブ ロスレス jpeg (いくつかのブラウザーでサポートされていない JPEG 2000 または JPEG-LS ではなく、.jpg) を作成するには、DLL、または exe ファイルのない .NET コードが必要です。できる場所で共有ホスティングを使用しているためです。 .exe ファイルを実行しないでください。それを行うはずのfreeImageを使用していますが、ロスレスjpegを生成しません(プログレッシブを取得しました)。

これは私のfreeImageコードです:

image = FreeImage.Load(FREE_IMAGE_FORMAT.FIF_JPEG, inputPath, FREE_IMAGE_LOAD_FLAGS.JPEG_ACCURATE)
FreeImage.Save(FREE_IMAGE_FORMAT.FIF_JPEG, image, outputPath, FREE_IMAGE_SAVE_FLAGS.JPEG_OPTIMIZE Or FREE_IMAGE_SAVE_FLAGS.JPEG_PROGRESSIVE)

FREE_IMAGE_SAVE_FLAGS.JPEG_OPTIMIZE フラグが画像を無損失にするはずですが、機能しません。私は何か間違ったことをしていますか?

exeファイルを使用すると、jpegtranを使用して問題を解決できました。ロスレス プログレッシブ jpeg を取得するには、.NET アプリまたは Web からシェル コマンドを実行するだけです。

このコマンドを実行すると:

jpegtran -copy none -optimize -progressive inputPath.jpg outputPath.jpg

プログレッシブ ロスレス jpeg ファイルが得られます

私はそれを使用して動作しますが、exeファイルなしで実行する必要があります.

4

1 に答える 1

1

LibJpeg.Net をチェックしてください: http://bitmiracle.com/libjpeg/基本的には C# の IJG ライブラリです。それは非常に低レベルのライブラリなので(DCT係数をいじる必要があります)、最良の方法はjpegtransソースを取得し、そこでどのようにそれを行うかを見て、LibJpeg.Netで同じことを行うことです(関数は同じ名前です.. ..)

EDIT1 : LibJpeg.Net の「クラシック」API を使用する必要があります。そこにはデコプレッサーとコンプレッサーが必要ですが、画像をデコードおよびエンコードする代わりに、DCT 係数を渡したいと考えています。探しjpeg_write_coefficientsjpeg_read_coefficients

于 2014-03-05T08:50:17.770 に答える