Quick change the scale of the active NewImage

This snippet allows to change the minima and maxima of the scaling of the active newimage. This function is especially useful if you want to change the scaling of a large number of NewImages. In contrast to the normal command, the name of the waves does not have to be known. The color scale and, whether it is reversed or not, remains unchanged.

If v_min and/or v_max = NaN or inf, the minimum and/or maximum is Igors's automatic value (*).

The variable v_wave is used to select the wave for NewImages with multiple displayed waves. The lowest wave is v_wave = 0, for the wave on top of the NewImage v_wave=inf can be used.

Example: f_newimage_scale(0,1,inf)

function f_newimage_scale(variable v_min, variable v_max, variable v_wave)
    string s_active_waves=ImageNameList("", ";" )
    if (stringmatch(s_active_waves,"")==1)
        print "Active NewImage contains no multidimensional wave."
        return 0   
    endif  
    if (numtype(v_wave)!=0)
        v_wave=itemsInList(s_active_waves)-1
    else
        v_wave=round(v_wave)
        if (v_wave<0)
            v_wave=0
        endif
        if (v_wave>itemsInList(s_active_waves)-1)
            v_wave=itemsInList(s_active_waves)-1
        endif
    endif
    string s_first_active_wave=StringFromList(v_wave,s_active_waves)
    variable v_hold=0
    if (numtype(v_min)!=0)
        v_hold+=1
    endif
    if (numtype(v_max)!=0)
        v_hold+=2
    endif
    string s_color
    variable v_reverse
    string s_imageinfo, s_recreation
    s_imageinfo=ImageInfo("",s_first_active_wave,0)
    s_imageinfo=ReplaceString(";",s_imageinfo,"_")
    s_imageinfo=ReplaceString("{",s_imageinfo,";")
    s_imageinfo=ReplaceString("}",s_imageinfo,";")
    s_recreation=StringFromList(1,s_imageinfo)
    s_recreation=ReplaceString(",",s_recreation,";")
    s_color= StringFromList(2,s_recreation)
    v_reverse=str2num(StringFromList(3,s_recreation))  
    switch (v_hold)
        case 0:
            ModifyImage $s_first_active_wave ctab= {v_min,v_max,$s_color,v_reverse}
        break
        case 1:
            ModifyImage $s_first_active_wave ctab= {*,v_max,$s_color,v_reverse}
        break
        case 2:
            ModifyImage $s_first_active_wave ctab= {v_min,*,$s_color,v_reverse}
        break
        case 3:
            ModifyImage $s_first_active_wave ctab= {*,*,$s_color,v_reverse}
        break
    endswitch  
end

Forum

Support

Gallery

Igor Pro 9

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More