画像に注釈または著作権素材を追加してから、変更されたビットマップを返す Bitmap オブジェクトを使用しています。私の問題は、ビットマップがチェーンに沿って移動するときに加えられた変更をビットマップが保持しないことです。私はそれを参照型として扱っており、各クラスに渡されると、変更が加えられると想定します。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 での回答で問題ありません。