gpt4 book ai didi

android - 在不修改纵横比的情况下更改位图尺寸

转载 作者:行者123 更新时间:2023-11-29 18:08:11 26 4
gpt4 key购买 nike

有什么方法可以在不拉伸(stretch)位图的情况下增加它的宽度(或高度)?基本上,我有一个 200x100 的位图,我想通过在左侧附加 50 个(白色/透明)像素并在右侧附加 50 个像素使其成为正方形 (200x200)。

我不想在屏幕上绘制这个位图,所以理想情况下,我应该以“智能”方式或类似方式使用转换矩阵,但我就是想不通...

最佳答案

你可以尝试这样的事情:

        // creating a dummy bitmap
Bitmap source = Bitmap.createBitmap(100, 200, Bitmap.Config.ARGB_8888);
Bitmap background;
Canvas canvas;

if(source.getHeight() == source.getWidth()) // do nothing
return;

// create a new Bitmap with the bigger side (to get a square)
if(source.getHeight() > source.getWidth()) {
background = Bitmap.createBitmap(source.getHeight(), source.getHeight(), Bitmap.Config.ARGB_8888);
canvas = new Canvas(background);
// draw the source image centered
canvas.drawBitmap(source, source.getHeight()/4, 0, new Paint());
} else {
background = Bitmap.createBitmap(source.getWidth(), source.getWidth(), Bitmap.Config.ARGB_8888);
canvas = new Canvas(background);
// draw the source image centered
canvas.drawBitmap(source, 0, source.getWidth()/4, new Paint());
}

source.recycle();
canvas.setBitmap(null);
// update the source image
source = background;

注意:黑色边框不是图像的一部分。我选择深红色作为背景颜色以查看图像的实际大小并将其与黑色和源图像的颜色(始终居中绘制)区分开来。

通过在 Canvas 上绘制它,它在屏幕上是不可见的。我使用 ImageView 只是为了测试代码。

这是我在 w=200,h=100 时得到的输出:

enter image description here

这是我在 w=100,h=200 时得到的输出:

enter image description here

关于android - 在不修改纵横比的情况下更改位图尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12240261/

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