android隐写术

时间:2011-01-10 07:49:05

标签: android steganography

我正在Android上进行隐写术。我的代码如下:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.src);
    picw = mBitmap.getWidth();
    pich = mBitmap.getHeight();
    pix= new int[picw * pich];
    mBitmap.getPixels(pix, 0, picw, 0, 0, picw, pich);


try {               
       FileOutputStream fos = super.openFileOutput("dest.png", MODE_WORLD_READABLE);
       mBitmap.compress(CompressFormat.PNG, 100, fos);
       fos.flush();            
       fos.close();            


    }catch (Exception e) {       
      tv.setText(e.getMessage());
    } 

我的问题是,每当我使用Bitmap.compress()方法保存源图像时,pix[0]值在压缩期间会发生变化,因此我无法提取原始数据。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这是因为Android手机正在使用alpha预乘以获得更好的PNG图像性能。 几个月前我试图创建一个解决方法,但没有成功。 据我所知,迄今为止在Android上没有这种类型的隐写术解决方案。

如果你想为Android创建更好更强大的隐写术,可以使用libjpeg库和NDK组合的JPEG图像。此外,还有用于在图像中使用小波的库。