我使用fotoapparat.io library拍摄照片。由于我不需要12或15兆像素的完整分辨率,因此我想将图像缩小到“ 768 x H”,而H是我的高度,取决于相机的宽高比。通常为4:3,即576像素。
均未调用:
photoResult.toBitmap(
new Function1<Resolution, Resolution>() {
@Override
public Resolution invoke(Resolution resolution) {
float scale = (float) 768 / resolution.width;
return scaled(scale).invoke(resolution);
}
}
)
不缩放:
photoResult.toBitmap(
new Function1<Resolution, Resolution>() {
@Override
public Resolution invoke(Resolution resolution) {
int height = 768;
int width = 576;
Resolution r = new Resolution(width, height);
return scaled(1.0F).invoke(r);
}
}
)
为我提供了帮助。对于第二个示例,当使用固定的1.0F作为缩放因子时,它会使图像失真。或以4/3作为比例因子,图像具有良好的比例,但随后被缩小到576 x 432像素。
如何在不影响其他摄像机的纵横比的情况下将图像缩小到固定宽度?
答案 0 :(得分:0)
我有Java代码来重新缩放位图。我用它来将图像缩小到“ 600 x H”。
dis = new DataInputStream(is);
while(dis.available()>0) {
// read four bytes from data input, return int
int k = dis.readInt();
// print int
System.out.print(k+" ");
}
答案 1 :(得分:0)
除了 TakeInfo 答案之外,您还应该存储尽可能小的图像,但是可以随时通过更改ImageView参数来调整图像大小
ImageView.getLayoutParams().width = your_width;
ImageView.getLayoutParams().height = your_height;
这是ImageView小部件的示例,对我有用
<ImageView
android:id="@+id/my_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:layout_margin="5dp"
android:layout_gravity="center"
/>