【问题标题】:Bitmap manipulation as a referenced object作为引用对象的位图操作
【发布时间】:2010-03-19 20:26:29
【问题描述】:

我正在使用一个位图对象,我将注释或版权材料添加到图像,然后返回修改后的位图。我的问题是位图在沿链移动时不会保存对其所做的更改。我将它视为引用类型,并假设当它传递给每个类时,它会携带对它所做的更改。我已经验证了 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 中的答案都可以。

【问题讨论】:

    标签: pass-by-reference watermark bitmapimage


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多