Манипулирование растровым изображением в качестве ссылочного объекта - PullRequest
0 голосов
/ 19 марта 2010

Я работаю с растровым объектом, в который я добавляю аннотации или авторские материалы к изображению, а затем возвращаю измененное растровое изображение.Моя проблема в том, что растровое изображение не будет содержать изменения, внесенные в него при его перемещении по цепочке.Я отношусь к нему как к ссылочному типу и предположил бы, что, когда он будет передан каждому классу, он будет нести сделанные в нем изменения.Я убедился, что код внутри классов 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 хороши.

1 Ответ

0 голосов
/ 20 марта 2010

Возможно, попробуйте назначить измененное растровое изображение временной переменной, а затем перезаписать image содержимым временной переменной. Пример:

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

Между этими строками вы можете проверить image и temp_image, чтобы убедиться, что ваши функции возвращают измененный объект, а не исходный объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...