私は複数ページの色のTIFFファイルをC#のc#CompressionCCITT3 tiffに変換しようとしています。私は、すべてのピクセルが1ビットであることを確認する必要があることを認識しています。このオンラインの便利な例は見つけられていません。TIFファイルを圧縮する
答えて
チェックアウト:http://bobpowell.net/onebit.htm
あなたは(私は右覚えていれば)カラーをサポートしていないCCITT3とCCITT4として、この変換を必要とします。
私は上記のコードを見て、手動ロジックですべてのピクセルを変換していたように見えました。
これはあなたのために働くでしょうか?
輸入System.Drawing.Imaging
'新しいビットマップとして
ファイル
TIF色を取得します。Dim bmpColorTIF( "C:\ color.tif")' のエリアを選択新しい矩形として
薄暗いrectColorTIF(すべてのフレームを取得します)TIF(0、0、bmpColorTIF.Width、bmpColorTIF.Height)
「は1ビットCOLとして長方形のクローンを作成しましたまたは
ビットマップ= bmpColorTIF.Clone(rectColorTIF、PixelFormat.Format1bppIndexed)として暗いbmpBlackWhiteTIF
TIF「あなたは新しいビットマップ(など、保存)
...
でやりたいです注:そこから選択するピクセル形式のトンがあります。
Pimping免責事項:私はAtalasoft、.NETイメージングソフトウェアを作成する会社で働いています。 dotImageを使用して
、このタスクは、このようなものになり:
FileSystemImageSource source = new FileSystemImageSource("path-to-your-file.tif", true); // true = loop over all frames
// tiff encoder will auto-select an appropriate compression - CCITT4 for 1 bit.
TiffEncoder encoder = new TiffEncoder();
encoder.Append = true;
// DynamicThresholdCommand is very good for documents. For pictures, use DitherCommand
DynamicThresholdCommand threshold = new DynamicThresholdCommand();
using (FileStream outstm = new FileStream("path-to-output.tif", FileMode.Create)) {
while (source.HasMoreImages()) {
AtalaImage image = source.AcquireNext();
AtalaImage finalImage = image;
// convert when needed.
if (image.PixelFormat != PixelFormat.Pixel1bppIndexed) {
finalImage = threshold.Apply().Image;
}
encoder.Save(outstm, finalImage, null);
if (finalImage != image) {
finalImage.Dispose();
}
source.Release(image);
}
}
ボブパウエルの例では、限り、それが行くように、良いですが、それはそれがあるということです少なくともそのうち多くの問題ではなく、を持っています単純なしきい値を使用するとスピードが必要で、実際に出力がどのように見えるか、入力ドメインが実際にはかなり白黒です(色で表現されている)かどうか気にする必要はありません。二値化は難しい問題です。利用可能な情報を1/24まで減らすことがあなたの仕事である場合、正しい情報を保持し、残りの部分を捨てる方法は難しいです。 DotImageには、2値化のための6種類のツール(IIRC)があります。 SimpleThresholdは私の視点から見るとバレルの一番下にあります。
まず、コーディングを始める前に、tiffとimageユーティリティを使用して望む結果を試してみることをお勧めします。私はVIPSが便利なツールであることを発見しました。次のオプションは、LibTIFFが何をすることができるかを調べることです。私は無料のLibTiff.NETを使用して良い結果を得ました.C#を使用してください(stackoverflowも参照してください)。私は非常にGDIのtiff機能に失望していましたが、あなたの人件費は変わるかもしれません(私は16ビットグレースケールが不足している必要があります)。 また、LibTiffユーティリティ(http://www.libtiff.org/man/tiffcp.1.htmlを参照)を使用することもできます。
- 1. 圧縮ファイル.pngファイル
- 2. スタティックLZMA圧縮ファイルをプログラムで圧縮解除する
- 3. teeを圧縮ファイル
- 4. PowerShellのファイル圧縮
- 5. MDBファイルの圧縮
- 6. jpegoptim doesnt圧縮ファイル
- 7. クロスプラットフォームのファイル圧縮
- 8. SharpZipLib:1つのファイルを1つの圧縮ファイルに圧縮する
- 9. apache圧縮圧縮されていない.jsファイルと.cssファイルを圧縮解除しますか?
- 10. S3のファイルを圧縮
- 11. QuaZIPでファイルを圧縮
- 12. androidのファイルがいっぱいのフォルダを圧縮/圧縮
- 13. 圧縮ファイルの文字列を圧縮ファイルで検索します。
- 14. PHPでPNGファイルを圧縮する
- 15. 今日のファイルを圧縮する
- 16. python3で圧縮ファイルをデコードする
- 17. ファイルとディレクトリを圧縮する
- 18. RARでファイルを圧縮する
- 19. r:readr:write_csvファイルを圧縮する方法は?
- 20. WireCloudsを圧縮するJavaScriptファイル
- 21. ファイルを圧縮するには
- 22. FSharpでファイルを圧縮するには?
- 23. アンドロイドのファイルとフォルダを圧縮する
- 24. ファイルを圧縮する際の問題
- 25. Qtで.txtファイルを圧縮する
- 26. フォルダとファイルを圧縮/解凍する
- 27. ZipOutPutStreamでファイルを圧縮するJava
- 28. JclCompressionでファイルを圧縮する
- 29. log4jファイルをローテーションして圧縮する
- 30. Visual Basic 6:Tifページを圧縮タイプZLW、JPEGなどからGroup4に変換