`
wisfly
  • 浏览: 62968 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

按一定比例裁剪图片

 
阅读更多

小伙伴们,我开了一家海淘护肤品淘宝店,搜索店铺“禾子蝶的海淘铺”,正品保证,欢迎进店选购哦。谢谢!

 

package com.cmcc.util;

import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;

import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
public class ImgHelper {
    /**
     * 剧中裁剪任意比例,理论支持所有图片格式
     * @param file
     * @param a 比例宽度
     * @param b 比例高度
     * @return
     * @throws IOException
     */
     public static InputStream cutCenterImage(File file,int a ,int b) throws IOException{
         ImageInputStream iis = ImageIO.createImageInputStream(file);

         Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
         ImageReader reader =iter.next();
         String ext=(reader.getFormatName());
        
         reader.setInput(iis, true);
         ImageReadParam param = reader.getDefaultReadParam();
         int imageIndex = 0;
         int x=reader.getWidth(imageIndex);
         int y=reader.getHeight(imageIndex);
         int w,h;
         if((x/y)>=(a/b)){
             if(a/b>1){
                 w=x;
                 h=x*b/a;
             }else{
                 w=y*a/b;
                 h=y;
             }
         }else{
             if(a/b<1){
                 w=y*a/b;
                 h=y;
             }else{
                 w=x;
                 h=x*b/a;
             }
         }
         Rectangle rect = new Rectangle((x-w)/2, (y-h)/2, w, h); 
         param.setSourceRegion(rect);
         BufferedImage bi = reader.read(0,param);  
         ByteArrayOutputStream os = new ByteArrayOutputStream();
         ImageIO.write(bi, ext, os);
         InputStream is = new ByteArrayInputStream(os.toByteArray());
         iis.close();
         return is;
     }
}

 

小伙伴们,我开了一家海淘护肤品淘宝店,搜索店铺“禾子蝶的海淘铺”,正品保证,欢迎进店选购哦。谢谢!

分享到:
评论

相关推荐

    图片裁剪自定义控件

    这个功能的实现一般会涉及监听用户的双击事件,然后根据一定的放大比例调整图片的大小。同时,为了保持用户体验,需要处理好图片的平滑缩放,防止像素化。 “手动缩放和拖拽”功能使得用户可以自由调整裁剪框的大小...

    C#winform图片裁剪

    5. **图片裁剪算法**:裁剪图片涉及计算新的图像矩形区域。我们可以通过指定裁剪的左上角坐标和宽度、高度来确定新的图像部分。System.Drawing.Image类提供了Clone方法,可以创建原始图像的副本,并通过Rectangle...

    C#实现缩放和剪裁图片的方法示例

    图片缩放是指将原始图片按照一定的比例或尺寸进行缩放,以适应不同的显示需求。在C#中,可以使用Graphics类的DrawImage方法来实现图片缩放。DrawImage方法可以将原始图片按照指定的尺寸和位置绘制到新的Bitmap对象中...

    Android裁剪图片(裁剪为缩略图和大图两种形式)

    在裁剪图片时,我们通常会用到Bitmap的子类,如MutableBitmap,因为裁剪需要对位图进行修改。 1. **图片裁剪基础** - 使用`ImageView`或`BitmapFactory`加载原始图片。 - `Bitmap.createBitmap()`方法用于创建一...

    PHP按一定比例压缩图片的方法

    本文将深入探讨如何使用PHP按一定比例压缩图片,以减少图片大小,提高网页加载速度,同时尽可能保持图片的清晰度。我们将介绍一个自定义的`Image`类,它封装了图片压缩的整个流程。 首先,我们需要了解PHP中的图像...

    裁剪压缩图片

    在数字图像处理领域,“裁剪压缩图片”通常指的是通过一定的算法和技术手段对原始图片进行尺寸调整、质量压缩以及特定区域裁剪的过程。这一过程对于优化网页加载速度、提升用户体验具有重要意义。 ### 核心知识点...

    一套基于VS2008实现的图片在线裁剪(jQuery + HttpHandler)源码

    在线裁剪图片在现代网页应用中非常常见,比如头像上传、产品图片编辑等场景,它为用户提供了一种便捷的方式来调整图片尺寸和选取特定区域,从而满足个性化需求。 首先,我们需要理解jQuery库的作用。jQuery是一个...

    php裁剪图片修改头像仿dz

    综上所述,实现“php裁剪图片修改头像仿dz”功能,涉及了图片上传、裁剪、数据库操作、前端交互以及安全和性能优化等多个环节,需要对PHP、HTML、CSS、JavaScript、Flash和数据库都有一定的了解。通过这个过程,...

    安卓头像制作图片圆角剪裁相关-android-crop是一个图片裁剪工具可以选择裁剪照片进行裁剪裁剪区域可拖动.rar

    这个压缩包包含了一个名为`android-crop`的开源库,它允许用户在应用内自由裁剪图片,并且裁剪区域可以被拖动,以适应不同的裁剪需求。 `android-crop`库是一个强大的图片裁剪工具,适用于Android平台。开发者可以...

    jquery+cropzoom实现简单的图片裁剪

    - **提交裁剪**: 用户确认裁剪区域后,插件将根据选择的区域裁剪图片,并返回裁剪后的图像数据。 ### 3. 实现步骤 #### 步骤1:引入资源 在 HTML 文件中,我们需要引入 `jQuery` 库和 `cropzoom` 插件的相关文件...

    基于Java实现Android的美化图片的库 功能包括滤镜,贴纸,标签,裁剪,涂鸦,亮度,饱和度,对比度,马赛克等功能

    图片裁剪,支持按一定比例裁剪 涂鸦,画笔,颜色,大小的调整。目前只支持两种画笔,以后会添加更多 编辑:图片亮度,饱和度,对比度的设置 使用说明: 入口:在MainActivity中启动BLPhotoPickActivity,进行一...

    vue移动端裁剪图片结合插件Cropper的使用实例代码

    本篇文章主要介绍了Vue移动端裁剪图片结合插件Cropper的使用实例代码,具有一定的参考价值。下面将详细讲解标题、描述、标签和部分内容中涉及到的知识点。 标题解读 标题"Vue移动端裁剪图片结合插件Cropper的使用...

    对给定的图片缩放

    2. **比例缩放**:描述中提到“如果有一个小于0,就按不为0并以一定的比例进行压缩”,这意味着在缩放过程中,如果设置了一个维度的大小为负值,那么程序会自动根据另一个维度的比例来计算新的尺寸。例如,如果宽度...

    图片等比例缩放

    `**:该属性用来隐藏超出容器部分的内容,确保即使图片被裁剪也不会显示出来。 #### 三、适用场景与注意事项 - **适用场景**:此方法适用于所有需要自动调整图片尺寸的网页设计场景,特别是在需要保持页面布局一致...

    自定义图片裁剪

    有时我们希望裁剪框保持一定的宽高比,比如1:1。为此,我们需要在裁剪框的缩放操作中维持宽高比不变。这可以通过计算和限制缩放因子来实现。 6. **裁剪逻辑**: 当用户完成裁剪框的调整后,需要执行裁剪逻辑。这...

    C#照片识别人脸截取成身份证比例的证件照

    可能包括读取图片、进行预处理、运行检测算法、确定裁剪参数、执行裁剪和调整等步骤。 总的来说,"C#照片识别人脸截取成身份证比例的证件照"项目涵盖了人脸识别、图像处理、尺寸校准等多个关键技术,利用OpenCv...

    MD风格的图片裁剪工具,可一次裁剪多张,支持国际化.zip

    3. **自定义参数**:开发者可以根据具体需求调整裁剪工具的各种参数,如裁剪比例、旋转角度、边框样式等,实现高度定制化的裁剪功能。 4. **响应式设计**:Durban库充分考虑了不同屏幕尺寸的Android设备,能自动...

    微信内部边框裁剪

    这个功能允许用户自定义裁剪图片,使他们可以缩放、移动图片,并保持裁剪边框的固定形状,同时确保裁剪的焦点始终在边框内部的图片部分。下面将详细探讨这一技术的关键知识点: 1. **自定义裁剪**:自定义裁剪是指...

    jQuery手机移动端上传图片裁剪代码.zip

    8. **二次开发**:由于代码可以进行二次修改,开发者可以根据自己的需求调整上传限制、裁剪比例、裁剪效果等。这需要对jQuery、HTML5 File API以及canvas绘图有一定了解,同时理解所使用的裁剪插件的API和工作机制。...

    html5微信手机端图片上传裁剪代码

    此外,提供清晰的裁剪区域指示、可调整的裁剪比例和角度等功能也很重要。 综上所述,实现"html5微信手机端图片上传裁剪代码"涉及到HTML5的新特性、JavaScript编程、前端库的使用、微信环境的适配以及移动端用户体验...

Global site tag (gtag.js) - Google Analytics