pro jpegtriplets ;This program makes a jpeg file of the image that you select ; (along with its corrispoding triplet mates). ; The output file is: ~/triplet.jpg cd,'',current=cdir & cd,cdir if n_params() eq 0 then log = cdir ;current log is the default cd,'DB/Image' print,'' print,'The Test Log is: ',log ;____________________________________________________________________________ ;List Files... spawn,'lsf',files,/noshell s=size(files) nfiles=fix(s(1)) numfiles=sstr(nfiles) ;numfiles=short string (nfiles) if files(0) eq '' then begin & print,'No files found' & goto,exit & endif array_sort,files ;sorts files in assending order print,'The number of Images in this log is: ',sstr(nfiles),' (1 thru ',sstr(nfiles),')' window,1,xsize=250, ysize=850 ;____________________________________________________________________________ ;Initalize... auto=1 ;for auto=1 tvscl min=0 ;the tvscl min setting max=4095 ;the tvscl max setting ilast=0 ;ilast is the previous value of i space=1.5 ;x spacing in inches sf=.75 ;scale factor (scales the size of the images on the page) ypos=0.5 ;sets the y position for each row ff=-1 ;flag for flat fields, 1=>enabled, -1=>disabled menu: print,'' print,'Enter to... Enter to... print,' 0 Get this menu -4 Autoscale, min to max print,' -1 Quit the program -5 Scale from min to 2 x average print,' -2 Change minimum -6 Print current image print,' -3 Change maximum -7 Toggle flat field ;____________________________________________________________________________ ;begin the loop that does the deed... again: file_no=0 read,'Which triplet do you want to display, 1 thru '+sstr(nfiles)+'? (0 for menu): ',file_no if file_no eq 0 then goto,menu ;display menu if file_no eq -1 then goto, exit ;end of program if file_no eq -2 then begin ;set minimum of stretch auto=0 read,'Min? ',min print,'Min set to: ',min file_no=ilast endif if file_no eq -3 then begin ;set maximum of stretch auto=0 read,'Max? ',max print,'Max set to: ',max file_no=ilast endif if file_no eq -4 then begin ;autoscale to max and min auto=1 print,'Set to Autoscale, min to max.' file_no=ilast endif if file_no eq -5 then begin ;autoscale, range = minimum to 2 x average auto=2 print,'Set to Autoscale, min to 2xAve.' file_no=ilast endif if file_no eq -6 then begin ;prints current image set_plot,'ps' device,filename = '~/idl.ps',/times,/portrait,xsize=7.5,ysize=9,yoffset=1.0,/inches,bits_per_pixel=8 ;;device,filename = '~/idl.ps',/times,/portrait,xsize=4.5,ysize=5.4,yoffset=1.0,/inches,bits_per_pixel=8 if auto eq 1 then tvscl,bytscl(p,min=min(p),max=max(p),top=255) else tvscl,bytscl(p,min=min,max=max,top=255) ;p>minmin0 maxpt=max(pout2) display_in=uint(65535d0*(double(pout2)-double(minpt))/(double(maxpt)-double(minpt))) storfile="~/triplet2."+sstr(n)+".png" write_png,storfile,display_in ;;pout2=bytscl(p,min=min(p),max=2*(.8+n*.1)*mean(p),top=4095) p4=p minpt=min(p4)>0 maxpt=max(p4) display_in=uint(65535d0*(double(p4)-double(minpt))/(double(maxpt)-double(minpt))) storfile2="~/triplet4."+sstr(n)+".png" write_png,storfile2,display_in p5=p^.5 minpt=min(p5)>0 maxpt=max(p5) display_in=uint(65535d0*(double(p5)-double(minpt))/(double(maxpt)-double(minpt))) storfile3="~/triplet5."+sstr(n)+".png" write_png,storfile3,display_in proot=(p)^0.5 pout3=bytscl(proot,min=min(proot),max=2*(.8+n*.1)*mean(proot),top=255) outfile="~/triplet3."+sstr(n)+".jpg" write_jpeg,outfile,pout,quality=100 endfor ;stop ilast=file_no goto,again exit: cd,cdir end