日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tiff转换Bitmap处理方法

發布時間:2024/1/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tiff转换Bitmap处理方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先項目中引入BitMiracle.LibTiff.NET的dll

命名空間:

using BitMiracle.LibTiff.Classic;
using System.Runtime.InteropServices;
using System.Windows.Forms;

?

private static Bitmap TiffToBitmap(string asTiffFile)
??{
???Bitmap bmp = null;
???try
???{
????bmp = (Bitmap)Bitmap.FromFile(asTiffFile);
????return bmp;
???}
???catch
???{
???}
???Tiff tif = Tiff.Open(asTiffFile, "r");
???if (tif == null)
???{
????return null;
???}
???// Find the width and height of the image
???FieldValue[] value = tif.GetField(TiffTag.IMAGEWIDTH);
???int width = value[0].ToInt();

???value = tif.GetField(TiffTag.IMAGELENGTH);
???int height = value[0].ToInt();

???// Read the image into the memory buffer
???int[] raster = new int[height * width];

???if (!tif.ReadRGBAImage(width, height, raster))
???{
????tif.Close();
????tif.Dispose();
????return null;
???}
???tif.Close();
???tif.Dispose();
???// bitmap作成
???bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb);
???Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
???BitmapData bmpdata = bmp.LockBits(rect, ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
???byte[] bits = new byte[bmpdata.Stride * bmpdata.Height];

???for (int y = 0; y < bmp.Height; y++)
???{
????int rasterOffset = y * bmp.Width;
????int bitsOffset = (bmp.Height - y - 1) * bmpdata.Stride;

????for (int x = 0; x < bmp.Width; x++)
????{
?????int rgba = raster[rasterOffset++];
?????bits[bitsOffset++] = (byte)((rgba >> 16) & 0xff);
?????bits[bitsOffset++] = (byte)((rgba >> 8) & 0xff);
?????bits[bitsOffset++] = (byte)(rgba & 0xff);
????}
???}
???Marshal.Copy(bits, 0, bmpdata.Scan0, bits.Length);
???bmp.UnlockBits(bmpdata);
???return bmp;
??}

使用方法:

Bitmap oBmp = TiffToBitmap(asFileName);

總結

以上是生活随笔為你收集整理的Tiff转换Bitmap处理方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。