@@ -200,6 +200,46 @@ func (self *Canvas) Open(filename string) error {
200200 return nil
201201}
202202
203+ func (self * Canvas ) SetOption (key , value string ) error {
204+ ckey := C .CString (key )
205+ cvalue := C .CString (value )
206+
207+ defer C .free (unsafe .Pointer (ckey ))
208+ defer C .free (unsafe .Pointer (cvalue ))
209+
210+ if C .MagickSetOption (self .wand , ckey , cvalue ) == C .MagickFalse {
211+ return fmt .Errorf (`Could not set option "%s" to "%s": %s` , ckey , cvalue , self .Error ())
212+ }
213+
214+ return nil
215+ }
216+
217+ func (self * Canvas ) SetCaption (content string ) error {
218+ ccontent := C .CString ("caption:" + content )
219+ defer C .free (unsafe .Pointer (ccontent ))
220+
221+ if C .MagickReadImage (self .wand , ccontent ) == C .MagickFalse {
222+ return fmt .Errorf (`Could not open image "%s": %s` , content , self .Error ())
223+ }
224+
225+ C .MagickDrawImage (self .wand , self .drawing )
226+
227+ return nil
228+ }
229+
230+ func (self * Canvas ) DrawAnnotation (content string , width , height uint ) error {
231+ ccontent := C .CString ("caption:" + content )
232+ defer C .free (unsafe .Pointer (ccontent ))
233+
234+ C .DrawAnnotation (self .drawing , 20 , 20 , (* C .uchar )(unsafe .Pointer (ccontent )))
235+
236+ if C .MagickDrawImage (self .wand , self .drawing ) == C .MagickFalse {
237+ return fmt .Errorf (`Could not draw annotation: %s` , self .Error ())
238+ }
239+
240+ return nil
241+ }
242+
203243// Reads an image or image sequence from a blob.
204244func (self * Canvas ) OpenBlob (blob []byte , length uint ) error {
205245 status := C .MagickReadImageBlob (self .wand , unsafe .Pointer (& blob [0 ]), C .size_t (length ))
@@ -894,6 +934,14 @@ func (self *Canvas) Crop(x int, y int, width uint, height uint) error {
894934 return nil
895935}
896936
937+ func (self * Canvas ) SetSize (width , height uint ) error {
938+ if C .MagickSetSize (self .wand , C .size_t (width ), C .size_t (height )) == C .MagickFalse {
939+ return fmt .Errorf ("Could not set size: %s" , self .Error ())
940+ }
941+
942+ return nil
943+ }
944+
897945func (self * Canvas ) SetContrast (factor float64 ) error {
898946 factor = math .Max (- 100 , factor )
899947 factor = math .Min (100 , factor )
0 commit comments