0

我正在使用一个位图对象,我向图像添加注释或版权材料,然后返回修改后的位图。我的问题是位图在沿链移动时不会保存对其所做的更改。我将它视为引用类型,并假设当它传递给每个类时,它会携带对它所做的更改。我已经验证 MarkImage() 类中的代码确实起作用,但是最后调用的代码是有变化的代码。

Public Shared Function GetImage(ByVal imageDef As IImageDefinition) As Bitmap
    Dim image As Bitmap = Drawing.Image.FromFile(imageDef.Path)

    If Not imageDef.Authorization.IsAllowed(AuthKeys.CanViewWithoutCopyright) Then
        image = New MarkCopyrightImage(image).MarkImage()
    End If

    If Not imageDef.Authorization.IsAllowed(AuthKeys.CanViewWithoutAnnotations) Then
        image = New MarkAnnotateImage(image).MarkImage()
    End If

    Return image
End Function

如何将更改写入位图对象,然后将该对象传递给另一个类,同时保持更改?

C# 或 VB 中的答案很好。

4

1 回答 1

0

也许尝试将修改后的位图分配给临时变量,然后image用临时变量的内容覆盖。例子:

temp_image = New MarkCopyrightImage(image).MarkImage()
image = temp_image

在这两行之间,您可以检查imagetemp_image确保您的函数返回的是修改后的对象,而不是原始对象。

于 2010-03-19T21:07:57.643 回答