返回首页

您好,我想知道,如何打开和修改大的图片文件,我需要更换某些像素的颜色,但是当我试图打开大文件(他们是从地图的图像,大小为300 MB或更多),我得到一个"内存不足"的错误。

我的代码是:

Private Sub BMW_Filtrar_DoWork(ByVal sender As System.Object, _

                                   ByVal e As System.ComponentModel.DoWorkEventArgs) _

                                   Handles BMW_Filtrar.DoWork

        Dim Archivo_Local As FileInfo = CType(e.Argument, FileInfo)

        If Archivo_Local.Exists = False Then Exit Sub

 

        Dim FSB As System.IO.FileStream

        FSB = New FileStream(Archivo_Local.FullName, FileMode.Open, FileAccess.Read)

        Dim L_Bitmap As Bitmap = Image.FromStream(FSB)

        Dim i, j, Cont1, Cont2, Cont3, Cont4 As Integer

        Dim Color_Px As System.Drawing.Color

 

        '--- BUSCAR FILAS EN BLANCO PARTE SUPERIOR E INFERIOR ---

        Dim Flag1 = False, Flag2 As Boolean = False

        For i = 0 To L_Bitmap.Height - 1 Step 1

            'COL CYCLE

            For j = 0 To L_Bitmap.Width - 1 Step 1

 



                Color_Px = L_Bitmap.GetPixel(j, i)

'REPLACE COLOR PIXEL

                With Color_Px

                    If .R >= 128 Or .G > 180 Then L_Bitmap.SetPixel(j, i, Color.White)

                    If .G <= 130 And .B <= 100 Then L_Bitmap.SetPixel(j, i, Color.White)

                End With

 

            Next 'FIN CICLO COLUMNAS

        Next

 

        L_Bitmap.Save(Archivo_Local.Directory.FullName & "\Archivo.tif")

Salir:

        Try

            L_Bitmap.Dispose()

            L_Bitmap = Nothing

            FSB.Close()

        Catch ex As Exception

 

        End Try

    End Sub

提前感谢任何帮助。

我最诚挚的问候,

弗雷迪煤

回答

评论会员: 时间:2