gpt4 book ai didi

android - 如何在保持透明背景的同时转换图像中的 LinearLayout

转载 作者:太空狗 更新时间:2023-10-29 13:58:58 24 4
gpt4 key购买 nike

我有一个 LinearLayout,我想在图像中进行转换,但我看到它变成了位图,背景失去了透明度。然后我必须把它变成一个图像 png 并且这样做并强加一个透明背景,alpha 等于零只是部分透明。图像仅在白色纸上是完全透明的,如果纸是彩色的,则图像是部分透明的。我使用 iText 创建图像。

   mLinearLayout.setDrawingCacheEnabled(true);

mLinearLayout.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));

mLinearLayout.layout(0, 0, 642, 400);


mLinearLayout.buildDrawingCache(true);

mBitmapLayoutPreview = Bitmap.createBitmap(mLinearLayout.getDrawingCache());
mLinearLayout.setDrawingCacheEnabled(false); //lose transparency


ByteArrayOutputStream stream = new ByteArrayOutputStream();
mBitmapLayoutPreview.compress(Bitmap.CompressFormat.PNG, 100 , stream);
Canvas canvas = new Canvas(mBitmapLayoutPreview);
canvas.drawColor(Color.TRANSPARENT);

final Paint paint = new Paint();
paint.setAlpha(0);
canvas.drawBitmap(mBitmapLayoutPreview, 0, 0, paint);
Image myImg = Image.getInstance(stream.toByteArray()); //is only partially transparent

我看到部分透明度是由 colorspace = 3 引起的,我是 myImg。我正在使用 iText 创建 pdf 文件

最佳答案

我没有使用 Canvas,但我设置了 BackgroundColor Transparent:

    mLinearLayout.setBackgroundColor(Color.TRANSPARENT);
mLinearLayout.setDrawingCacheEnabled(true);

mLinearLayout.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));


mLinearLayout.layout(0, 0, 642, 400);

mLinearLayout.buildDrawingCache(true);
Log.i(TAG, "The color of background is: " +mCardLayout.getAlpha());

mBitmapLayoutPreview = Bitmap.createBitmap(mLinearLayout.getDrawingCache());


mLinearLayout.setDrawingCacheEnabled(false); // clear drawing cache

mBitmapLayoutPreview 是我的 LinearLayout 背景为 Transparent

关于android - 如何在保持透明背景的同时转换图像中的 LinearLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37249647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com