当前位置: 技术问答>linux和unix
大侠帮我看看这段Shell程序->
来源: 互联网 发布时间:2014-12-20
本文导语: #! /bin/sh # Name: ps-thumnail2 # # Description: # This file generates thumb nail image file at study level. # # Syntax # Called as HREF from an HTML page # # # So the command line params for this script are: # $1=$IMG # $2=$CENTER # $3=$WIDTH # $...
#! /bin/sh
# Name: ps-thumnail2
#
# Description:
# This file generates thumb nail image file at study level.
#
# Syntax
# Called as HREF from an HTML page
#
#
# So the command line params for this script are:
# $1=$IMG
# $2=$CENTER
# $3=$WIDTH
# $4=$CF
# $5=$SKIP_NUM
# $6=$DELAY
. ./ps-env
IMG=$1
CENTER=$2
WIDTH=$3
CF=$4
SKIP_NUM=$5
DELAY=$6
echo Content-type: image/jpeg
#echo Content-type: image/gif
echo
# Get image size which is the max of width and height
maxRowsCols=`dcm_dump_elements 00280010 00280011 $IMG | sort -r | nawk '{print $1;exit}'`
# Assign denominator of scale factor (scF)
scF=2
if [ $maxRowsCols -ge 600 ]; then
scF=4
else
if [ $maxRowsCols -ge 350 ] && [ $maxRowsCols -lt 600 ]; then
scF=2
else
if [ $maxRowsCols -ge 150 ] && [ $maxRowsCols -lt 350 ]; then
scF=1
fi
fi
fi
if [ $JPEG_USED = 0 ]; then
# Find out if the image is color or not
PPMQUANT=cat
photo=`dcm_dump_elements 00280004 $IMG | sed 's/ //g'`
if [ "$photo" = "RGB" ] || [ "$photo" = "PALETTECOLOR" ]; then
PPMQUANT="ppmquant 256"
fi
fi
if [ $JPEG_USED = 1 ]; then
if [ $HANDLE_VOI = 1 ]; then
exec psConvert -cf $CF -input_dicom -pnm8 -scale 1/$scF -skip $SKIP_NUM -delay $DELAY -VOI '('$CENTER','$WIDTH')' $IMG | cjpeg8;
else
exec psConvert -cf $CF -input_dicom -pnm8 -scale 1/$scF -skip $SKIP_NUM -delay $DELAY -default_VOI '(-250,100)' $IMG | cjpeg8;
fi
else
if [ $HANDLE_VOI = 1 ]; then
exec capacs-extract-image -size 256 -VOI '('$CENTER','$WIDTH')' $IMG
| $PPMQUANT | ppmtogif
else
exec capacs-extract-image -size 256 -default_VOI '(128,256)' $IMG
| $PPMQUANT | ppmtogif
fi
fi
1 能大致讲一下这个程序的意思呢?
2 exec 后面的capacs-extract-image应该为文件名还是一个进程?怎么看到capacs-extract-image程序?
3 我猜想这段程序应该是对图象进行处理的,处理图象的程序应该是capacs-extract-image。那么当CGI(Perl)调用这个Shell进行显示图象的时候,图象处理结果是怎么返回给Perl进行显示的呢?难道是把图象的相素返回?该程序演示的时候能正确显示Dicom图象,其中就是调用该Shell程序。但我不明白。
多谢各位大侠帮忙
# Name: ps-thumnail2
#
# Description:
# This file generates thumb nail image file at study level.
#
# Syntax
# Called as HREF from an HTML page
#
#
# So the command line params for this script are:
# $1=$IMG
# $2=$CENTER
# $3=$WIDTH
# $4=$CF
# $5=$SKIP_NUM
# $6=$DELAY
. ./ps-env
IMG=$1
CENTER=$2
WIDTH=$3
CF=$4
SKIP_NUM=$5
DELAY=$6
echo Content-type: image/jpeg
#echo Content-type: image/gif
echo
# Get image size which is the max of width and height
maxRowsCols=`dcm_dump_elements 00280010 00280011 $IMG | sort -r | nawk '{print $1;exit}'`
# Assign denominator of scale factor (scF)
scF=2
if [ $maxRowsCols -ge 600 ]; then
scF=4
else
if [ $maxRowsCols -ge 350 ] && [ $maxRowsCols -lt 600 ]; then
scF=2
else
if [ $maxRowsCols -ge 150 ] && [ $maxRowsCols -lt 350 ]; then
scF=1
fi
fi
fi
if [ $JPEG_USED = 0 ]; then
# Find out if the image is color or not
PPMQUANT=cat
photo=`dcm_dump_elements 00280004 $IMG | sed 's/ //g'`
if [ "$photo" = "RGB" ] || [ "$photo" = "PALETTECOLOR" ]; then
PPMQUANT="ppmquant 256"
fi
fi
if [ $JPEG_USED = 1 ]; then
if [ $HANDLE_VOI = 1 ]; then
exec psConvert -cf $CF -input_dicom -pnm8 -scale 1/$scF -skip $SKIP_NUM -delay $DELAY -VOI '('$CENTER','$WIDTH')' $IMG | cjpeg8;
else
exec psConvert -cf $CF -input_dicom -pnm8 -scale 1/$scF -skip $SKIP_NUM -delay $DELAY -default_VOI '(-250,100)' $IMG | cjpeg8;
fi
else
if [ $HANDLE_VOI = 1 ]; then
exec capacs-extract-image -size 256 -VOI '('$CENTER','$WIDTH')' $IMG
| $PPMQUANT | ppmtogif
else
exec capacs-extract-image -size 256 -default_VOI '(128,256)' $IMG
| $PPMQUANT | ppmtogif
fi
fi
1 能大致讲一下这个程序的意思呢?
2 exec 后面的capacs-extract-image应该为文件名还是一个进程?怎么看到capacs-extract-image程序?
3 我猜想这段程序应该是对图象进行处理的,处理图象的程序应该是capacs-extract-image。那么当CGI(Perl)调用这个Shell进行显示图象的时候,图象处理结果是怎么返回给Perl进行显示的呢?难道是把图象的相素返回?该程序演示的时候能正确显示Dicom图象,其中就是调用该Shell程序。但我不明白。
多谢各位大侠帮忙
|
This file generates thumb nail image file at study level.
你会shell语言吗?如果不回先去学shell编程吧
你会shell语言吗?如果不回先去学shell编程吧
|
1)这是一个cgi脚本,用shell写的,放到服务器的/cgi-bin下面可以从浏览器中打开几幅图片
2)exec 后面的都是参数,可以是选项,可以是文件名。
3) Content-type: image/jpeg表明后面跟的是jpeg图片
content-type: text/html跟着html文本。
echo "con..."
echo
一共有两个回车,告诉服务器正文开始了这时服务器才向浏览器发送数据,否则认为发送协商信息。
2)exec 后面的都是参数,可以是选项,可以是文件名。
3) Content-type: image/jpeg表明后面跟的是jpeg图片
content-type: text/html跟着html文本。
echo "con..."
echo
一共有两个回车,告诉服务器正文开始了这时服务器才向浏览器发送数据,否则认为发送协商信息。
|
多谢楼上
这个exec后面的参数capacs-extract-image是什么意思呢?
这个exec后面的参数capacs-extract-image是什么意思呢?
|
exec后面的capacs-extract-image应该是一个可执行程序,后面的-size 256 -VOI应该是capacs-extract-image执行时需要的命令行参数。
capacs-extract-image是在cgi中被调用的,直接向stdout输出就应该可以传送到客户端了。
找一下系统有没有capacs-extract-image这个可执行文件,加上命令行参数,运行一下,将标准输出定向到某个文件中,很有可能这个输出的文件就是一个处理后的图片文件。
capacs-extract-image是在cgi中被调用的,直接向stdout输出就应该可以传送到客户端了。
找一下系统有没有capacs-extract-image这个可执行文件,加上命令行参数,运行一下,将标准输出定向到某个文件中,很有可能这个输出的文件就是一个处理后的图片文件。