如何从左右切割矩形图像(600 x 300)以适合方形ImageView?我不想调整图像大小,我只想裁剪它,为300 x 300.
[解]
正如@blackbelt所说
Bitmap cropImg = Bitmap.createBitmap(src, startX, startY, dstWidth, dstHeight);
非常适合裁剪图像.那么如何自动裁剪不同尺寸的图像.我为此创建了这个简单的代码:
// From drawable
Bitmap src= BitmapFactory.decodeResource(context.getResources(), R.drawable.image);
// From URL
Bitmap src = null;
try {
String URL = "http://www.example.com/image.jpg";
InputStream in = new java.net.URL(URL).openStream();
src = BitmapFactory.decodeStream(in);
} catch (Exception e) {
e.printStackTrace();
}
int width = src.getWidth();
int height = src.getHeight();
int crop = (width - height) / 2;
Bitmap cropImg = Bitmap.createBitmap(src, crop, 0, height, height);
ImageView.setImageBitmap(cropImg);
Run Code Online (Sandbox Code Playgroud) 我正在尝试调整大小然后正方形裁剪传入的图像.我有我的图像,ReadOnlyStream并希望输出到MemoryStream.
我正在使用ImageResizer库来做到这一点.
我希望我的图像首先缩小尺寸,然后将中心方形裁剪成它们.我正在使用此代码,但它不会产生我需要的代码.它什么都没产生......
var resultStream = new MemoryStream();
ImageJob job = new ImageJob(imageStream, resultStream, new Instructions {
Width = 100,
Height = 100,
Mode = FitMode.Crop
});
job.Build();
Run Code Online (Sandbox Code Playgroud)
此代码应对大图像进行下采样,并根据库默认值(中心裁剪)裁剪它们.
我没有在web.config中提供任何特定的配置,因为我理解它并不是必需的.
我究竟做错了什么?
我正在尝试从正常尺寸的图像创建2个裁剪缩略图(60x60和150x150).一切都很好,除了裁剪,这是行不通的.那部分是生成一个右下方有黑线的缩略图,如下所示:
.............
. ...
. ...
. ...
.............
Run Code Online (Sandbox Code Playgroud)
调整大小工作得很好,因为最终缩略图的正确高度为60和150(从原始的风景图像开始),但它们仍然出现在风景中.
是)我有的:
list($thumb_width, $thumb_height) = getimagesize($thumb_target);
if ($thumb_width > $thumb_height) { // landscape
$thumb1_new_height = 60;
$thumb1_new_width = floor( $thumb_width * ( $thumb1_new_height / $thumb_height ));
$thumb1_crop_x = ceil(($thumb_width - $thumb_height) / 2);
$thumb1_crop_y = 0;
$thumb2_new_height = 150;
$thumb2_new_width = floor( $thumb_width * ( $thumb2_new_height / $thumb_height ));
$thumb2_crop_x = ceil(($thumb_width - $thumb_height) / 2);
$thumb2_crop_y = 0;
}
else if ($thumb_width < $thumb_height){ // portrait
$thumb1_new_width = 60;
$thumb1_new_height …Run Code Online (Sandbox Code Playgroud) 想要拍摄照片,裁剪并将图像保存在Android应用程序中时,我在Java中使用以下意图...
Intent camera=new Intent();
camera.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
camera.putExtra("crop", "true");
camera.putExtra("outputX",600);
camera.putExtra("outputY", 600);
camera.putExtra("aspectX", 1);
camera.putExtra("aspectY", 1);
camera.putExtra("scale", true);
camera.putExtra("return-data", false);
Run Code Online (Sandbox Code Playgroud)
上述意图效果很好,但我的Y和X总是相等的.我打算分解代码,找出指定的内容,这样我就可以为我拍摄的图像制作可定制的 - 最重要的是独立的 - X和Y值...
android crop android-camera android-camera-intent resize-crop
我有600px宽度和600px高度的图像.我们有三种尺寸的圆圈.所有人都有中间位置.有些人将反射作为阴影.我想裁剪图像用于显示目的.

因此,如上所示的最大圆圈的直径约为500像素,但中小型圆圈的直径较小.我知道在代码中我有对象类型的大小Product.由于尺寸差异,我必须以不同的方式放置它们并使用三个占位符图像,如下所示:
<Image x:Name="imgCoinHolderSmall"
HorizontalAlignment="Center"
Margin="0,495,0,0"
VerticalAlignment="Top"
Stretch="Fill"
Width="200"
Height="200"/>
<Image x:Name="imgCoinHolderMedium"
HorizontalAlignment="Center"
Margin="0,510,0,0"
VerticalAlignment="Top"
Stretch="Fill"
Width="200"
Height="200"/>
<Image x:Name="imgCoinHolderLarge"
HorizontalAlignment="Center"
Margin="0,520,0,0"
VerticalAlignment="Top"
Stretch="Fill"
Width="200"
Height="200"/>
Run Code Online (Sandbox Code Playgroud)
因此,我可以更改图像的属性,使其不显示此屏幕截图的红色部分:
顺便说一句,我没有显示原始大小的图像(正如你在xaml代码中看到的那样)我将宽度设置为200.它只是一个显示器,我不必存储新图像.我想动态地做,最好通过在xaml中设置图像属性.(适用于所有三种尺寸的圆圈)
使用CroppedBitmap最好的方法?http://msdn.microsoft.com/en-us/library/ms752345.aspx顺便说一句,它适用于Windows rt.