0

我正在开发一个 android 应用程序并尝试将 RasterImage 转换为 Bitmap Image 以绘制具有给定点的线。但我在转换时遇到了例外。我正在为此使用 LEADTOOLS DICOM SDK 版本 18。下面是我正在使用的代码

private void drawingfunction(float x, float y, float xend, float yend, int color) {
    try{
         RasterImage _loadedImage;
         RaterImageViewer secondviewer;
         Bitmap newpic;
         newpic=RasterImageConverter.convertToBitmap(_loadedImage2, ConvertToImageOptions.NONE.getValue());
         newpic = Bitmap.createBitmap(_loadedImage2.getWidth(), _loadedImage2.getHeight(), Config.ARGB_8888);
         Canvas c = new Canvas(newpic);
         c = new Canvas(newpic);
         secondviewer.draw(c);
         Paint p = new Paint();
         p.setColor(color);
         c.drawLine(x, y, xend, yend, p);
         secondviewer.setImageBitmap(newpic);
        }
        catch(Exception ex)
        {
           Toast.makeText(getApplicationContext(),ex.toString(),Toast.LENGTH_SHORT).show();
        }
}
4

1 回答 1

0

我们在 v18 Android 工具包附带的 ViewerDemo 中测试了与您类似的代码,但没有显示出类似的问题。如果你想试试我们的测试,先从这个项目开始:LEADTOOLS_Android_18\Examples\Android\ViewerDemo 然后修改 ViewerDemoActivity.java 文件中的 setImage() 函数变成这样:

private void setImage(RasterImage image) {
  try {
     int bpp = image.getBitsPerPixel();
     RasterByteOrder order = image.getOrder();
     Bitmap newpic=RasterImageConverter.convertToBitmap(image, ConvertToImageOptions.NONE.getValue());

     newpic = Bitmap.createBitmap(image.getWidth(), image.getHeight(), Config.ARGB_8888);
     Canvas c = new Canvas(newpic);
     c = new Canvas(newpic);
     mViewer.draw(c);
     Paint p = new Paint();
     p.setColor(0xFFFF0000);
     c.drawLine(20, 20, 200, 200, p);

     mViewer.setImageBitmap(newpic);
  } catch(Exception ex) {
     Messager.showError(this, ex.getMessage(), "");
  }
}

我们尝试了不同的图像,包括彩色和 16 位灰度 Dicom 图像,它们都奏效了。如果问题仍然存在,请将触发它的实际图像通过电子邮件发送给 LEAD 支持,并提供有关您用于测试的项目的更多详细信息。

于 2016-06-07T12:52:33.930 回答