2013-04-27 122 views
2

我目前正在試圖讓一個Android應用程序的DICOM 下面的代碼打開圖片DROM RES /可繪製在「ussual」圖像格式,但它不與主要活動.DCMAndroid開發:如何打開一個.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

Dicom是一種通用容器。在Dicom文件中,您可以找到各種各樣的圖像格式。從灰度到RGB,從單幀到多幀,像素值範圍不是普通的8位(RGB/RGBA中的24/32),而是12或16位灰度。

Dicom文件包含很多指示內容類型的元素(字段),甚至包括這些內容應如何處理presented。它不像將Dicom圖像轉換爲BMP那麼簡單。

如果您從PACS檢索Dicom圖像,我會建議使用WADO服務。這樣,您就可以獲得Jpeg圖像(將呈現狀態應用於Dicom文件內容的結果)。

另一種選擇是使用一些實用程序將Dicom文件轉換爲更傳統的圖像格式。有一些優秀的開源工具,例如DCMTK工具包中的dcmj2pnm

1

Dicom圖像無法被Android識別,因此您無法使用BitmapFactory對象打開它們。

最近Imebra已經用Java包裝進行了擴展,這些包裝調用了Imebra本機代碼,並附帶了預構建的JAR,因此您不必處理JNI編譯。

0

除了jap1968和Paolo提到的兩個選項,它們都很好,但需要使用某種方法在不同的平臺上轉換圖像,然後在Android設備和互聯網連接上查看它,您實際上可以查看如果您使用支持DCM及其不同子類型的庫,Dicom會直接在Android設備上存檔。其中一個工具包在Google Play上有一個免費的演示應用程序: https://play.google.com/store/apps/details?id=leadtools.datasetdemo