Android开发:如何打开.dcm文件作为位图?

时间:2013-04-27 11:25:07

标签: android android-image dicom

我正在尝试制作Android dicom应用程序 以下代码打开图片drom res / drawable in“ussual”图像格式,但它不适用于.dcm

public class BitmapView extends View
{
    public BitmapView(Context context) {
            super(context);
    }
    @Override
    public void onDraw(Canvas canvas) {
    Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.test);
        canvas.drawColor(Color.BLACK);
        canvas.drawBitmap(bmp, 10, 10, null);
    }
}

主要活动:

protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(new BitmapView(this));     
    }

提前感谢!

3 个答案:

答案 0 :(得分:3)

Dicom是一种通用容器。在Dicom文件中,您可以找到各种各样的图像格式。从灰度级到RGB,从单帧到多帧,像素值范围不是普通的8位(RGB / RGBA为24/32),而是12或16位灰度级。

Dicom文件包含许多指示内容类型的元素(字段),甚至包括这些内容应该是presented的方式。它并不像将Dicom图像转换为BMP那么简单。

如果您要从PACS中检索Dicom图像,我建议您使用WADO服务。这样,您就可以获得Jpeg图像(将表示状态应用于Dicom文件的内容的结果)。

另一种选择是使用一些实用程序将Dicom文件转换为更传统的图像格式。 dcmj2pnm工具包中有一些优秀的开源工具,例如DCMTK

答案 1 :(得分:1)

Android无法识别Dicom图像,因此您无法使用BitmapFactory对象打开它们。

最近Imebra已经扩展了Java包装器,它调用Imebra本机代码并附带一个预构建的JAR,因此您不必处理JNI编译。

答案 2 :(得分:0)

除了jap1968和Paolo提到的两个选项,它们都很好但需要使用某种方法在不同平台上转换图像然后在Android设备和互联网连接上查看它,你实际上可以查看Dicom如果您使用支持DCM及其不同子类型的库,则直接在Android设备上自行归档。一个这样的工具包在Google Play上有一个免费的演示应用程序: https://play.google.com/store/apps/details?id=leadtools.datasetdemo