@@ -190,28 +190,10 @@ function ps2image(ps_data::Union{String, AbstractVector{UInt8}}; dpi::Int=300, g
190190 nch = gray ? 1 : 3
191191 _gs_state_reset! ()
192192 cb_ref = _gs_make_callback_ref ()
193- inst_ref = Ref {Ptr{Cvoid}} (C_NULL )
194- rc = gsapi_new_instance (inst_ref, C_NULL )
195- rc < 0 && error (" gsapi_new_instance failed: $rc " )
196- inst = inst_ref[]
197- try
198- gsapi_set_arg_encoding (inst, GS_ARG_ENCODING_UTF8)
199- rc = gsapi_set_display_callback (inst, cb_ref)
200- rc < 0 && error (" gsapi_set_display_callback failed: $rc " )
201- args = [" gs" , " -dNOPAUSE" , " -dNOPROMPT" , " -dQUIET" , " -dSCANCONVERTERTYPE=2" ,
202- " -dUseFastColor=true" , " -dGraphicsAlphaBits=4" , " -dTextAlphaBits=4" ,
203- " -sDEVICE=display" , " -dDisplayFormat=$(fmt_int) " , " -r$(dpi) " ]
204- # args_c = [Base.cconvert(Cstring, s) for s in args]
205- # argv = [Base.unsafe_convert(Cstring, s) for s in args_c]
206- GC. @preserve args begin
207- rc = gsapi_init_with_args (inst, Cint (length (args)), args)
208- end
209- rc < 0 && error (" gsapi_init_with_args failed: $rc " )
210- _gs_run_ps_str (inst, ps_data, () -> " " )
211- finally
212- gsapi_exit (inst)
213- gsapi_delete_instance (inst)
214- end
193+ args = [" gs" , " -dNOPAUSE" , " -dNOPROMPT" , " -dQUIET" , " -dSCANCONVERTERTYPE=2" ,
194+ " -dUseFastColor=true" , " -dGraphicsAlphaBits=4" , " -dTextAlphaBits=4" ,
195+ " -sDEVICE=display" , " -dDisplayFormat=$(fmt_int) " , " -r$(dpi) " ]
196+ _gs_session (args, inst -> _gs_run_ps_str (inst, ps_data, () -> " " ); display_cb= cb_ref)
215197 _GS_STATE. ready || error (" Ghostscript produced no output — check PostScript validity." )
216198 W = _GS_STATE. width; H = _GS_STATE. height; R = _GS_STATE. raster
217199 img = if R == W * nch
@@ -605,28 +587,10 @@ psview(ps_data::GMTps; dpi::Int=300) = psview(ps_data.postscript; dpi=dpi)
605587function psview (ps_data:: Union{String, AbstractVector{UInt8}} ; dpi:: Int = 300 )
606588 _gs_state_reset! ()
607589 cb_ref = _gs_make_callback_ref ()
608- inst_ref = Ref {Ptr{Cvoid}} (C_NULL )
609- rc = gsapi_new_instance (inst_ref, C_NULL )
610- rc < 0 && error (" gsapi_new_instance failed: $rc " )
611- inst = inst_ref[]
612- try
613- gsapi_set_arg_encoding (inst, GS_ARG_ENCODING_UTF8)
614- rc = gsapi_set_display_callback (inst, cb_ref)
615- rc < 0 && error (" gsapi_set_display_callback failed: $rc " )
616- args = [" gs" , " -dNOPAUSE" , " -dNOPROMPT" , " -dQUIET" , " -dSCANCONVERTERTYPE=2" ,
617- " -dUseFastColor=true" , " -dGraphicsAlphaBits=4" , " -dTextAlphaBits=4" ,
618- " -sDEVICE=display" , " -dDisplayFormat=$(_GS_FMT_RGB24) " , " -r$(dpi) " ]
619- # args_c = [Base.cconvert(Cstring, s) for s in args]
620- # argv = [Base.unsafe_convert(Cstring, s) for s in args_c]
621- GC. @preserve args begin
622- rc = gsapi_init_with_args (inst, Cint (length (args)), args)
623- end
624- rc < 0 && error (" gsapi_init_with_args failed: $rc " )
625- _gs_run_ps_str (inst, ps_data, () -> " " )
626- finally
627- gsapi_exit (inst)
628- gsapi_delete_instance (inst)
629- end
590+ args = [" gs" , " -dNOPAUSE" , " -dNOPROMPT" , " -dQUIET" , " -dSCANCONVERTERTYPE=2" ,
591+ " -dUseFastColor=true" , " -dGraphicsAlphaBits=4" , " -dTextAlphaBits=4" ,
592+ " -sDEVICE=display" , " -dDisplayFormat=$(_GS_FMT_RGB24) " , " -r$(dpi) " ]
593+ _gs_session (args, inst -> _gs_run_ps_str (inst, ps_data, () -> " " ); display_cb= cb_ref)
630594 _GS_STATE. ready || error (" Ghostscript produced no output." )
631595 _GS_BGR[] = _gs_make_bgr_dib (_GS_STATE. width, _GS_STATE. height, _GS_STATE. raster, _GS_STATE. data)
632596
0 commit comments