私はカメラから撮影した画像をXamarin.Formsで250kbのサイズに圧縮しようとしています。私は依存サービスでそれを行う方法を見つけましたが、依存サービス(純粋なxamarin.formsコード)なしでそれを必要としています。どのようにそれが可能です。誰かが私にあなたが持っている最良のアプローチを提案できますか?事前依存関係サービスなしのxamarin.formsを使用して画像のサイズを250kbに圧縮
6
A
答えて
12
で
おかげであなたは画像処理に関する知識のトンを必要とするので、それは非常に複雑な仕事です。
最も重要なことに、ホイールを再発明することは悪い動きです。
http://www.codeproject.com/Articles/83225/A-Simple-JPEG-Encoder-in-C
のみJPEGに取り組む上のコードプロジェクトのを見てみましょう。 TIFF、GIF、BMPなどとは言わないでください。
イメージ圧縮には、DCTやハフマンのような複雑な数学的変換が多数含まれています。
これらの基礎を学ぶには、大学全体の学期が必要です。
一方、プラットフォームサポートを賢く利用すると、1分以内にタスクを完了できます。
Windows PhoneのBitmapEncoder .NET FrameworkでのiOS
でAndroidのusing (System.IO.Stream stream = System.IO.File.Create(targetFile))
{
bitmap.Compress(Bitmap.CompressFormat.Jpeg, 30, stream);
}
UIImageで
FileStream stream = new FileStream("new.jpg", FileMode.Create);
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.QualityLevel = 30;
encoder.Frames.Add(BitmapFrame.Create(image));
encoder.Save(stream);
ビットマップ
NSData data = image.AsJPEG(0.3);
ビットマップ
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
ImageCodecInfo codec = codecs.First(t => t.FormatID == ImageFormat.Jpeg.Guid);
EncoderParameters parameters = new EncoderParameters(1);
parameters.Param[0] = new EncoderParameter(Encoder.Quality, 30L);
bitmap.Save("output.jpg", codec, parameters);
+0
ありがとう!私が必要としたもののように見える – nicks
関連する問題
- 1. Unity Dependency InjectionとXamarin.Formsを使用した依存関係のチェーン
- 2. PCAを使用した画像圧縮
- 3. SVDを使用した画像圧縮
- 4. 損失圧縮技術を使用した画像圧縮
- 5. 使用WMIサービスの依存関係を検索し、依存ドライバからの依存サービスを差別化する
- 6. 使用してサードパーティの依存関係
- 7. iOS用の大きな画像の圧縮とサイズ変更
- 8. どのように圧縮画像を使用しますか?
- 9. データ圧縮と画像圧縮の差
- 10. LZ4:圧縮画像フォーマットの圧縮
- 11. 依存関係の依存関係の使用
- 12. imageMagickを使用して画像ファイルのサイズを縮小する
- 13. Javaを使用した画像のRLE圧縮解凍
- 14. JavaScriptでアップロードした画像のサイズを変更して圧縮する
- 15. CarrierWave in Railsを使用して画像の2つのバージョン(圧縮および非圧縮)をアップロードする
- 16. requirejs:依存関係リストの短縮
- 17. OpenCV Javaを使用して画像を圧縮して特定のフォルダに保存する方法
- 18. Perl:cpanを使用して依存関係をインストールできない
- 19. JPEG画像圧縮
- 20. 圧縮画像android
- 21. VB.NET - 画像圧縮
- 22. PIL画像圧縮
- 23. データベースを使用するノード・ソープ・サービス(依存関係の問題)
- 24. 依存関係グラフにMavenサービスを使用
- 25. CoreCompatで圧縮したときに画像のサイズが変わらない
- 26. アップロードした画像をマゼンタで圧縮
- 27. Javascript/jQuery画像を正しいoreantation postに圧縮し、Ajaxを使用してコントローラに保存するLaravel 5.2
- 28. Maven 3を使用して子依存関係を親依存関係よりも優先させない
- 29. WebP技術を使用した画像圧縮
- 30. applicationhost.configに関係なくデータを圧縮しない戻りデータ
「純粋な」フォームコードで行う方法はないと思います。イメージロジックをすべてゼロから作成したい場合は、膨大な量のコードにする必要があります。各プラットフォームの高度に最適化されたネイティブイメージ処理機能を利用することは、DIを使用するように強制しても、はるかに良い方法のように思えます。 – Jason
.NET参照ライブラリのオブジェクトブラウザで確認すると、System.Drawingポータブルライブラリが表示されます。そのライブラリをインポートするには? –
system.drawingでは、この回答を使用できます。 http://stackoverflow.com/a/24199315/5495701 – Slepz