在VB中使用“指针"时如何在visual basic.net中制作直方图 [英] How to make histogram in visual basic.net while use “Pointer” in VB

查看:111
本文介绍了在VB中使用“指针"时如何在visual basic.net中制作直方图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Nicho,我想问你如何在vb.net中使用指针".
这是代码

I''m Nicho, I wanna ask you how to use "pointer" in vb.net I was translete code from c# that used a pointer to VB/net

here is the code

private void btBrowseCoverHistogram_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < 256; i++)
        {
            LabelCover[i] = i;
            LumCover[i] = 0;
            RedCover[i] = 0;
            GreenCover[i] = 0;
            BlueCover[i] = 0;

        }
        String citracoverhistogram = GetCitraCover("JPEG (*.jpg)|*.jpg|Bitmaps (*.bmp)|*.bmp");
        if (citracoverhistogram != null)
        {
            txtCitraCoverHistogram.Text = citracoverhistogram;
            AturCitraCover(citracoverhistogram);
            this.Cursor = Cursors.WaitCursor;

            try
            {
                Bitmap citracover = new Bitmap(citracoverhistogram);
                BitmapData data = citracover.LockBits(new System.Drawing.Rectangle(0, 0, citracover.Width, citracover.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

                unsafe
                {
                    byte* pointer = (byte*)data.Scan0;

                    int sisa = data.Stride - data.Width * 3;



                    for (int i = 0; i < data.Height; i++)
                    {

                        for (int j = 0; j < data.Width; j++)
                        {

                            int ratarata = (int)(0.114 * pointer[0] + 0.587 * pointer[1] + 0.299 * pointer[2]);
                            int red = pointer[2];
                            int green = pointer[1];
                            int blue = pointer[0];
                            //
                            LumCover[ratarata]++;
                            RedCover[red]++;
                            GreenCover[green]++;
                            BlueCover[blue]++;
                            //
                            pointer += 3;
                        }
                        pointer += sisa;
                    }
                }

                citracover.UnlockBits(data);

                cbWarnaCoverHistogram.Text = "Luminosity";
                FormatHistogramCover(grafikCoverHistogram, "", "", LabelCover, LumCover, Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), Color.Black, 0, 1);
                gbCoverHistogram.Enabled = true;

            }
            catch
            {

            }
            this.Cursor = Cursors.Default;
        }
    }





Private Sub btBrowseCoverHistogram_Click(sender As Object, e As EventArgs)
For i As Integer = 0 To 255
    LabelCover(i) = i
    LumCover(i) = 0
    RedCover(i) = 0
    GreenCover(i) = 0

    BlueCover(i) = 0
Next
Dim citracoverhistogram As [String] = GetCitraCover("JPEG (*.jpg)|*.jpg|Bitmaps (*.bmp)|*.bmp")
If citracoverhistogram IsNot Nothing Then
    txtCitraCoverHistogram.Text = citracoverhistogram
    AturCitraCover(citracoverhistogram)
    Me.Cursor = Cursors.WaitCursor

    Try
        Dim citracover As New Bitmap(citracoverhistogram)
        Dim data As BitmapData = citracover.LockBits(New System.Drawing.Rectangle(0, 0, citracover.Width, citracover.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb)

        Dim pointer As Pointer(Of Byte) = CType(data.Scan0, Pointer(Of Byte)) 'CODE ERROR START HERE

        Dim sisa As Integer = data.Stride - data.Width * 3



        For i As Integer = 0 To data.Height - 1

            For j As Integer = 0 To data.Width - 1

                Dim ratarata As Integer = CInt(Math.Truncate(0.114 * pointer(0) + 0.587 * pointer(1) + 0.299 * pointer(2)))
                Dim red As Integer = pointer(2)
                Dim green As Integer = pointer(1)
                Dim blue As Integer = pointer(0)
                '
                LumCover(ratarata) += 1
                RedCover(red) += 1
                GreenCover(green) += 1
                BlueCover(blue) += 1
                '
                pointer += 3
            Next
            pointer += sisa
        Next

        citracover.UnlockBits(data)

        cbWarnaCoverHistogram.Text = "Luminosity"
        FormatHistogramCover(grafikCoverHistogram, "", "", LabelCover, LumCover, Color.FromArgb(0, 0, 0), _
            Color.FromArgb(255, 255, 255), Color.Black, 0, 1)

        gbCoverHistogram.Enabled = True

    Catch
    End Try
    Me.Cursor = Cursors.[Default]
End If
End Sub



我发现错误消息定义了类型指针"



and I find the error message "Type Pointer is defined"

Would you help me please??

推荐答案

可以在同一行中看到类型"Pointer"吗?好吧,重命名变量"pointer".请记住,列表语言不区分大小写.

—SA
Can you see the type ''Pointer'' in the same line? Well, rename the variable ''pointer''. Remember that list language is not case-sensitive.

—SA


这篇关于在VB中使用“指针"时如何在visual basic.net中制作直方图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆