Çok sayfalı bir renk tiff dosyasını C# C'deki CompressCCITT3 tiff'e dönüştürmeye çalışıyorum. Tüm piksellerin 1 bit olduğundan emin olmam gerektiğini anlıyorum. Bu çevrimiçi için kullanışlı bir örnek bulamadım.Bir TIF dosyasını sıkıştırmak
cevap
atın: http://bobpowell.net/onebit.htm
Sen (yanlış hatırlamıyorsam) renk desteği olmayan CCITT3 ve CCITT4 olarak bu dönüşüm gerekiyor.
Yukarıdaki kodu gördüm ve her pikseli manuel mantıkla dönüştürüyor gibi görünüyordu.
Bu sizin için çalışır mı?
İthalat System.Drawing.Imaging
'renk tif dosyasını Yeni Bitmap Olarak
Dim bmpColorTIF olsun ("C: \ color.tif")
' lik bir alanı seçmek tif (tüm çerçeveleri çekecek)
Yeni dikdörtgen olarakDim rectColorTIF (0, 0, bmpColorTIF.Width, bmpColorTIF.Height)
'1 bit col olarak dikdörtgen klon veya Bitmap = bmpColorTIF.Clone olarak
Dim bmpBlackWhiteTIF (rectColorTIF, PixelFormat.Format1bppIndexed) tif
'Eğer yeni bir bitmap (kaydetmek, vs)
ne istiyorsan yap
...Not: Aralarından seçim yapabileceğiniz bir ton piksel biçimi vardır.
Yasal uyarı reddi: .NET görüntüleme yazılımı yapan bir şirket olan Atalasoft için çalışıyorum. dotImage kullanma
, bu görev Böyle bir şey olur:
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);
}
}
olarak gider Bob Powell örnek kadarıyla, iyidir, ama buna olmasıdır az hangi sorunları, bir numarası vardır Basit bir eşik kullanarak, hız istiyorsanız ve çıktılarınızın neye benzediğini ya da giriş alanınızın aslında gerçekten çok siyah ve beyaz renkte olduğu gibi renklendirilmediğinden emin olun. Binarizasyon zor bir sorundur. Göreviniz mevcut bilgiyi 1/24'e kadar azaltmak olduğunda, doğru bilgileri nasıl saklayacağınız ve gerisini nasıl atacağınız bir zorluktur. DotImage'ın ikili hale getirme için altı farklı aracı (IIRC) vardır. SimpleThreshold, bakış açımdan varilin alt kısmıdır.
Önce kodlamaya dalmadan önce tiff ve görüntü yardımcı programlarını kullanarak istenen sonuçları denemenizi öneriyorum. Kullanışlı bir araç olması için VIPS'u buldum. Bir sonraki seçenek LibTIFF'in neler yapabileceğine bakmaktır. Ben C# kullanarak ücretsiz LibTiff.NET ile iyi sonuçlar elde ettik (ayrıca bkz. stackoverflow). Eğer milajınız değişse de (16-bit-gri tonlamaya gerek duymuyorum) GDI tiff işlevselliği beni çok hayal kırıklığına uğrattı. Ayrıca, LibTiff yardımcı programlarını da kullanabilirsiniz (bkz. http://www.libtiff.org/man/tiffcp.1.html)
- 1. Amazon S3 Dosyaları Sıkıştırmak?
- 2. zip/android bir dosya dolu dosyaları sıkıştırmak
- 3. Symfony'de belirli bir eylemin çıktısını sıkıştırmak?
- 4. Bir .zip'i java'da .gz'ye sıkıştırmak nasıl?
- 5. TIF ve 4 köşeli geotiff oluşturma ve enlem ve boylam
- 6. Flyway geçişlerini "sıkıştırmak" için herhangi bir yol var mı?
- 7. Skobbler tarafından desteklenen uygulamada kullanmak için SKMaps.zip dosyasını sıkıştırmak için hangi işlem kullanılmalıdır?
- 8. Tar.gz dosyasını açın
- 9. Dizeleri sıkıştırmak/şifrelemek için yerel yakut yöntemleri?
- 10. Mikrosaniye doğruluğu ile unix zaman damgasını sıkıştırmak
- 11. Saatlik verileri değişime göre sıkıştırmak için sorgu
- 12. Webapi'yi sıkıştırmak için doğru yol POST
- 13. Tam yol olmadan dosyayı sıkıştırmak için
- 14. mp3 sıkıştırmak için sox nasıl kullanılır?
- 15. Çoklu birimlerde sıkıştırmak için SevenZipSharp kullanma?
- 16. Tif görüntüleri jpeg'ye dönüştürmek/ölçeklemek için powershell çözümünü arıyor
- 17. LESS dosyalarını, lessc kullanarak yorumları kaldırmadan sıkıştırmak mümkün mü?
- 18. Döndürülmüş günlük dosyalarını sıkıştırmak için bir yardımcı program mı?
- 19. 1 bit derinliğe sahip bir TIF kaydetmek için en iyi web görüntülenebilir formatı nedir?
- 20. Bir BAT dosyasını kullanarak bir komut dosyasını nasıl çalıştırırım?
- 21. bir .zip dosyasını unzip
- 22. İki gcov dosyasını bir
- 23. Bir yaml dosyasını ayrıştırma
- 24. Bir html dosyasını
- 25. Bir JavaKeyStore dosyasını
- 26. Bir input.txt dosyasını Java
- 27. Bir csv dosyasını python
- 28. Bir .pdb dosyasını okuma
- 29. UTL_COMPRESS paketi txt dosyasını sıkıştırmak ve oracle 11 g ile unix'te gz dosyası oluşturmak için nasıl kullanılır?
- 30. Ephesoft, belirli bir tif görüntüsünü öğrenemez veya çıkartamaz (tüm görüntülerde değil)