在尝试降低使用三星平板电脑拍摄的图像的分辨率时遇到问题。从我创建的自定义相机拍摄时,实际图像大小为1932 x 2576。当我尝试将分辨率更改为960 x 720时,图像会拉伸。但是,如果我将分辨率设置为720 x 960,则图像很好。不拉伸就不能改变宽度和高度吗?
我得到一个位图并尝试了这个:
Bitmap bitmap1 = Bitmap.createScaledBitmap(bitmap,960,720,true);
我也尝试过:
public Bitmap getResizedBitmap(Bitmap image) {
int width = image.getWidth();
int height = image.getHeight();
float scaleWidth = ((float) 960) / width;
// create a matrix for the manipulation
float scaleHeight = ((float) 720) / height;
Matrix matrix = new Matrix();
// resize the bit map
matrix.postScale(scaleWidth, scaleHeight);
// recreate the new Bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(image, 0, 0, width, height, matrix, false );
image.recycle();
return resizedBitmap;
}
这是我得到的结果:
这是我期望的结果:
我见过一些帖子问同样的问题,但是它们都得到了我尝试过的类似答案。我也认为这是因为相机本身的分辨率是高度大于宽度的,如果我尝试宽度大于高度,会不会起作用?谢谢。
答案 0 :(得分:0)
您必须使用相同的宽高比。
---
title: "Untitled"
author: "Myname"
date: "5 April 2019"
output:
html_document:
keep_md: yes
number_sections: yes
toc: yes
toc_depth: 2
self_contained: false
pdf_document:
number_sections: yes
toc: yes
toc_depth: '2'
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
text
```{r, echo=FALSE, results='asis'}
cat(
'![Some text here.](pics/myimage.png',
if (knitr::is_html_output()) '?raw=true',
'){width=400px}',
sep = ''
)
```
text
与1932 / 2576
相同。这就是为什么您的图像很好。
但是您想使用720 / 960
,而不是960 / 720
。
要计算正确的高度,请使用以下公式:
1932 / 2576
要计算正确的宽度,请使用以下公式:
height = width * 0.75
width = height / 0.75
是因为0.75