久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何從具有負步幅的位圖中復制像素數據?

How can I copy the pixel data from a Bitmap with negative stride?(如何從具有負步幅的位圖中復制像素數據?)
本文介紹了如何從具有負步幅的位圖中復制像素數據?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我一直在尋找將位圖轉換為 8bpp 的最快方法.我找到了兩種方法:

I was looking for the fastest way to convert a Bitmap to 8bpp. I found 2 ways:

1.

        public static System.Drawing.Image ConvertTo8bpp(Bitmap oldbmp)
    {
        using (var ms = new MemoryStream())
        {
            oldbmp.Save(ms, ImageFormat.Gif);
            ms.Position = 0;
            return System.Drawing.Image.FromStream(ms);
        }
    }

2. http://www.wischik.com/lu/programmer/1bpp.html

但是:1. 結果質量非常低(托盤不良)

But: 1. Results in a very low quality result (bad pallet)

2 給了我一個負步幅的位圖,當我嘗試鎖定位并將數據復制到字節數組時,我得到一個異常:嘗試讀取或寫入受保護的內存.這通常表明其他內存已損壞.

and 2 gives me a Bitmap with negative stride, when I try to lockbits and copy the data to a byte array I get an exception: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

        BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, bmp.PixelFormat);

        this.stride = bmpData.Stride;
        this.bytesPerPixel = GetBytesPerPixel(bmp.PixelFormat);
        int length = bmpData.Stride * bmp.Height;
        if (this.stride < 0)
            this.data = new byte[-length];
        else
            this.data = new byte[length];
        Marshal.Copy(bmpData.Scan0, data, 0, length);

        //Unlock the bitmap
        bmp.UnlockBits(bmpData);

我怎樣才能讓 2 取得積極的進展?或者如何使用負步幅的鎖位復制數據?

How can I make 2 gives a positive stride? Or how can I copy data using lockbits of a negative stride??

推薦答案

一次復制 1 行,計算一行的起始指針為 ((byte*)scan0 + (y * stride)).無論是正步幅還是負步幅,代碼都是相同的.

Copy 1 row at a time, calculating the starting pointer for a row as ((byte*)scan0 + (y * stride)). The code will be identical for either positive or negative stride.

這篇關于如何從具有負步幅的位圖中復制像素數據?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Right-click on a Listbox in a Silverlight 4 app(右鍵單擊 Silverlight 4 應用程序中的列表框)
WPF c# webbrowser scrolls over top menu(WPF c# webbrowser 在頂部菜單上滾動)
C# Console app - How do I make an interactive menu?(C# 控制臺應用程序 - 如何制作交互式菜單?)
How to avoid duplicate form creation in .NET Windows Forms?(如何避免在 .NET Windows Forms 中創建重復的表單?)
UI Automation Control Desktop Application and Click on Menu Strip(UI自動化控制桌面應用程序并單擊菜單條)
Removing thin border around the menuitems(刪除菜單項周圍的細邊框)
主站蜘蛛池模板: 日韩中文字幕精品 | 四虎在线免费观看 | 久久狠狠干 | 国产美女啪啪 | 日本国产在线观看 | 黄色片视频在线观看 | 91亚色视频 | 日本久久网站 | 国产一区在线视频 | 国产精品成人免费精品自在线观看 | 欧美啪啪网 | 风间由美一区二区三区 | 国产精品日韩在线 | 欧美一区二区三区在线 | 亚洲精品www | 国产一级片免费 | 成人精品在线 | 国产成人在线观看免费网站 | 看片黄全部免费 | 国产欧美精品一区二区色综合 | 一区二区三区av | 18精品爽国产白嫩精品 | 夜夜肉她怀孕h周君彦 | www.av在线视频 | 国产操操操 | 欧美综合色 | 色av导航 | 玖玖在线观看 | 免费在线小视频 | 亚洲一区在线看 | 一级片观看 | 高清视频一区二区 | 久久在线播放 | 中文字幕在线网站 | 亚洲欧美日韩精品 | 一级黄色片在线观看 | 国产黄色一区二区 | 日韩精品中文字幕在线观看 | 亚洲成人免费 | 国产91免费视频 | 欧美黄色一级视频 |