From 5176b0b6b7e54b956f9aa7df11f59d342e7510b1 Mon Sep 17 00:00:00 2001 From: Peter Williams Date: Fri, 5 May 2017 18:16:21 +1000 Subject: [PATCH] Allow xobject image modification that preserves unchanged parts of original xobject --- pdf/model/xobject.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pdf/model/xobject.go b/pdf/model/xobject.go index 90cef5a0..90814aa5 100644 --- a/pdf/model/xobject.go +++ b/pdf/model/xobject.go @@ -245,7 +245,13 @@ func NewXObjectImage() *XObjectImage { // Creates a new XObject Image from an image object with default options. // If encoder is nil, uses raw encoding (none). func NewXObjectImageFromImage(name PdfObjectName, img *Image, cs PdfColorspace, encoder StreamEncoder) (*XObjectImage, error) { - xobj := NewXObjectImage() + baseXObj := NewXObjectImage() + return UpdateXObjectImageFromImage(baseXObj, name, img, cs, encoder) +} + +func UpdateXObjectImageFromImage(baseXObj *XObjectImage, name PdfObjectName, img *Image, cs PdfColorspace, encoder StreamEncoder) (*XObjectImage, error) { + dupObj := *baseXObj + xobj := &dupObj if encoder == nil { encoder = NewRawEncoder()