PRO save_image_log @common_blocks.inc if (LMGR(/DEMO)) then RETURN use_dir = data_dir if image_log_directory ne '' then $ use_dir = image_log_directory if not (file_test(use_dir, /directory, /write)) then begin print, "save_image_log: cannot write to:",use_dir print, "will use /tmp/" use_dir="/tmp/" endif ; don't log blanck images if N_elements((*image_stack(0).image_d)) le 10 then return ;widget_control, un_sensitive_id, sensitive =0 WIDGET_CONTROL, /HOURGLASS WIDGET_CONTROL, draw_area, GET_VALUE=win WSET, win backing = tvrd(TRUE=1) tvlct, r, g, b, /get WIDGET_CONTROL, draw_cm, GET_VALUE=win2 WSET, win2 cm_backing = tvrd(TRUE=1) wset, win back_s = size(backing) cm_back_s = size(cm_backing) bs1 = back_s(2) bs2 = back_s(3) cs1 = cm_back_s(2) cs2 = cm_back_s(3) print, bs1, bs2, cs1, cs2 comb_im = bytarr(3, max([bs1,cs1]), bs2+cs2) comb_im(*, 0:bs1-1, cs2:(bs2+cs2-1)) = backing[*,*,*] comb_im(*, 0:cs1-1, 0:(cs2-1)) = cm_backing[*,*,*] comb_im_s = size(comb_im) filename = use_dir+image_log_string+ string(image_log_number++, FORMAT='(I5.5)') if image_log_format eq 'JPEG2000' then filename = filename+'jp2' else $ filename = filename+'.jpg' if strmatch(filename, '.jp2') then begin j2k = OBJ_NEW('IDLffJPEG2000', filename, /WRITE, N_components=3) j2k->SetData, comb_im OBJ_Destroy, j2k print, 'wrote jpeg2000 image:', filename endif else begin write_jpeg, filename, comb_im, TRUE=1, QUALITY=100 print, 'wrote jpeg file: ', filename endelse RETURN END