Друзья, я работаю с steganography для изображений в android прямо сейчас. Для этого мне нужно преобразовать изображение в массив бит и декодировать его обратно. Но когда я пытаюсь преобразовать свое изображение обратно в его исходную форму, он показывает только черный цвет в моем ImageView. вот мой кодМое изображение черное в андроиде
btnEncode = (кнопка) findViewById (R.id.encode); btnEncode.setOnClickListener (новый View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//imgPath.setText(imageToBase64(selectedImagePath));
ImageView imageView=(ImageView)findViewById(R.id.imageView1);
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
bytes = getBytesFromBitmap(bitmap);
StringBuilder binary = new StringBuilder();
for (byte b : bytes)
{
int val = b;
for (int i = 0; i < 8; i++)
{
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
binary.append(' ');
}
//To save the binary in newString
String ImageEncoded=new String(binary.toString());
TextView imgData=(TextView)findViewById(R.id.txtResult);
imgData.setText(ImageEncoded);
}
});
btnDecode = (Button) findViewById(R.id.decode);
btnDecode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
ImageView imageView=(ImageView)findViewById(R.id.imageView1);
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
bytes = getBytesFromBitmap(bitmap);
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
ImageView image = (ImageView) findViewById(R.id.imageView2);
image.setImageBitmap(bmp);
}
});
public static byte[] getBytesFromBitmap(Bitmap bitmap)
{
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 70, stream);
return stream.toByteArray();
}
почему этот требуется преобразование? – Triode
возможно, что у вас есть CompressFormat.JPEG, который превратит вашу прозрачность в черное использование PNG вместо – JRowan
Требуется конверсия, чтобы я мог скрывать секретное сообщение на изображении. Как вы думаете, я могу использовать любой другой способ сделайте это? – Abinthaha