首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过删除java中的透明像素将图像裁剪为最小尺寸

在Java中,可以使用Java Advanced Imaging (JAI) API来实现删除透明像素并将图像裁剪为最小尺寸的功能。以下是一个简单的示例代码:

代码语言:java
复制
import javax.media.jai.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.ImageIO;

public class ImageCrop {
    public static void main(String[] args) throws IOException {
        // 读取图像文件
        BufferedImage image = ImageIO.read(new File("input.png"));

        // 获取图像的宽度和高度
        int width = image.getWidth();
        int height = image.getHeight();

        // 创建一个新的图像,用于存储裁剪后的图像
        BufferedImage croppedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);

        // 获取图像的Alpha通道
        WritableRaster alphaRaster = image.getAlphaRaster();

        // 遍历图像的每个像素,找到最小的裁剪尺寸
        int minX = width;
        int minY = height;
        int maxX = 0;
        int maxY = 0;
        for (int y = 0; y< height; y++) {
            for (int x = 0; x< width; x++) {
                int alpha = alphaRaster.getSample(x, y, 0);
                if (alpha != 0) {
                    minX = Math.min(minX, x);
                    minY = Math.min(minY, y);
                    maxX = Math.max(maxX, x);
                    maxY = Math.max(maxY, y);
                }
            }
        }

        // 根据找到的最小裁剪尺寸,裁剪图像
        int cropWidth = maxX - minX + 1;
        int cropHeight = maxY - minY + 1;
        BufferedImage cropImage = new BufferedImage(cropWidth, cropHeight, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2d = cropImage.createGraphics();
        g2d.drawImage(image, 0, 0, cropWidth, cropHeight, minX, minY, maxX + 1, maxY + 1, null);
        g2d.dispose();

        // 保存裁剪后的图像到文件
        ImageIO.write(cropImage, "png", new File("output.png"));
    }
}

这个示例代码中,我们首先读取图像文件,然后获取图像的Alpha通道,遍历图像的每个像素,找到最小的裁剪尺寸。接着,我们根据找到的最小裁剪尺寸,裁剪图像并保存到文件。

需要注意的是,这个示例代码仅适用于具有透明度的图像,如PNG格式的图像。如果要处理其他格式的图像,需要进行相应的修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Golang语言情怀--第118期 全栈小游戏开发:第9节:精灵帧资源(SpriteFrame)

Custom — 自定义裁剪3. None — 无裁剪,使用原图 Trim Threshold 透明度阈值,默认为 1,取值范围 0~1,会将透明度在设定值以下像素裁减掉。...Sprite 图像时去除图像周围透明像素,我们看到刚好能把图像包裹住约束框。...取消勾选,Sprite 节点约束框会包括透明像素部分。 Size Mode 用来节点尺寸设置原图或原图裁剪透明像素大小,通常用于在序列帧动画中保证图像显示正确尺寸。...有以下几种选择: TRIMMED 选择该选项,会将节点尺寸(size)设置原始图片裁剪透明像素大小。 RAW 选择该选项,会将节点尺寸设置原始图片包括透明像素大小。...这样动画在播放每个序列帧时,都将使用原始图片尺寸,并保留图像周围透明像素信息,这样才能正确显示绘制在动画中角色位移。

16710

「Adobe国际认证」Adobe Photoshop,如何裁剪并拉直照片?

如果您启用“自动调整不透明度”,那么当您编辑裁剪边界时会降低不透明度。 删除裁剪像素禁用此选项以应用非破坏性裁剪,并在裁剪边界外部保留像素。非破坏性裁剪不会移去任何像素。...您可以稍后单击图像以查看当前裁剪边界之外区域。 启用此选项以删除裁剪区域外部任何像素。这些像素丢失,并且不可用于以后调整。 注意:右键单击裁剪框,以从上下文菜单访问常用裁剪选项。...3.使用图像周围手柄,拉直或旋转图像。或者,画布范围扩展到图像原始大小之外。 4.当您对结果满意时,单击选项栏√以提交裁剪操作。Photoshop 会智能地填充图像空白区域/空隙。...增大画布大小会在现有图像周围添加空间。减小图像画布大小会裁剪图像。如果增大带有透明背景图像画布大小,则添加画布是透明。如果图像没有透明背景,则添加画布颜色将由几个选项决定。...1.选取“图像”>“画布大小”。 2.执行下列操作之一: 在“宽度”和“高度”框输入画布尺寸。从“宽度”和“高度”框旁边弹出菜单中选择所需测量单位。

2.8K10

自定义瓦片地图切图-基于腾讯地图

1、需求 在腾讯地图上发一张自定义手绘地图,由于手绘地图像素都比较高,加载一整张图速度极慢。手绘地图按照地图瓦片规则切片分开加载。...),得到拉升源图; 对拉升后源图进行四周像素填充,生成符合瓦片图格式切割源图(由于切割源图尺寸较大,只记录尺寸,未真正生成切割源图,避免服务器内存溢出); 根据上一步记录切割源图参数信息,拉升源图切割成瓦片源图...,通过比例源图尺寸进行拉升(只增大尺寸,不压缩尺寸)。...所以在合成切割源图时,如果尺寸不是瓦片切图个数倍数,需要将图片尺寸放大为最临近一个倍数值。 3、切图速度过慢 解:切图过程存在很多空白透明图,无需切割。...在切割前先判断对应瓦片尺寸图是否全空白图,如果是全空白图则不需要切图处理。

4.7K50

WPF图片处理与图片加载

Uniform(等比例缩放填充):图像等比例地缩放到可用空间最大尺寸,保持图像原始宽高比。...UniformToFill(等比例缩放并裁剪填充):图像等比例地缩放到可用空间最小尺寸,保持图像原始宽高比,并将超出可用空间部分裁剪掉。...可以根据需求选择合适填充模式来显示图像。 宽高和渲染宽高 WPF Image宽高指的是在布局显示宽高,可以通过设置Width和Height属性来进行调整。...而渲染宽高指的是图像在实际显示时实际像素宽高。 在WPF,可以通过设置Stretch属性来控制图像渲染宽高与宽高关系。...例如,如果设置了Image宽度100像素,高度200像素,而Stretch属性设置Uniform,那么图像将以保持宽高比例方式显示,可能会有一部分被裁剪,但一定能完整显示在100x200像素区域内

62420

PIL库

五、convert类im.convert(mode)⇒ image当前图像转换为其他模式,并且返回新图像。当从一个调色板图像转换时,这个方法通过这个调色板来转换像素。...作图软件Visio2016。这是一个懒操作。对源图像改变可能或者可能不体现在裁减下来图像。为了获取一个分离拷贝,对裁剪拷贝调用方法load()。?...在当前PIL版本,参数methodEXTENT(裁剪出一个矩形区域),AFFINE(仿射变换),QUAD(正方形转换为矩形),MESH(一个操作映射多个正方形)或者PERSPECTIVE。...例如,如果输入图像(x0,y0)输出图像(0,0)点,(x1,y1)则与变量size一样。这个方法可以用于在当前图像裁剪,放大,缩小或者镜像一个任意长方形。...输出图像每一个像素(x,y),新值由输入图像位置(ax+by+c, dx+ey+f)像素产生,使用最接近像素进行近似。这个方法用于原始图像缩放、转换、旋转和裁剪

2.2K20

emwin教程_emwin教程

通过上述步骤,即可成功创建 BMP 图像文件 C 数组。...; 4) BitsPerPixel:位图图像单个像素所占位数,该参数和上一个参数都与位图宽 度和颜色格式有关,假设位图使用颜色格式是 ARGB8888,那么图像单个像素数据就 占 32 位; 5)...bit depth),表示图像存储一个像素色彩信息所占用位数,单位是位/像素 (bits per pixel) 或 bpp。...通常说什么 8 位、 24 位图像,这个多少位指就是色彩深度。色彩深度越大,则单个像素包含色彩信息越多,图像整体颜色就越丰富。...在此过程, 窗口管理器每个子矩形都设置裁剪区域,并将所有子矩形 WM_PAINT 消息都发送给被覆盖窗口。 窗口被覆盖区域越碎片,存在矩形就越多,发送消息就越多。

5.2K40

SVG精髓阅读笔记

计算机描述图形信息二大系统是栅格图形和矢量图形,在栅格图形系统,图像被表示图片元素或者像素长方形数组,每个像素用其RGB颜色值或者颜色表内索引表示,这一系列像素也称为位图....在矢量图形系统,图像被描述一系列几何形状,矢量图形阅读器接受在指定坐标集上绘制形状指令,而不是接受一系列已经计算好像素.有人把矢量图形描述一组绘图指令,而位图则是在特定位置填充颜色点....,没有单位默认为像素 默认坐标是水平坐标向右递增,垂直坐标垂直向下递增 元素svg上属性viewBox属性,有四个值,分表代表想要叠加在视口上用户坐标系统最小x坐标,最小y坐标,宽度和高度 下面一行代码是在...,在这种情况下SVG可以做三件事 1:按较小尺寸等比例缩放图形,以使图形完全填充视口, 2:按较大尺寸等比例缩放图形并裁剪掉超出视口部分 3:拉伸和挤压绘图以使其恰好填充新视口 属相preserveAspectRatio...Svg支持嵌套坐标系统一个svg元素插入到一个新文档 Svg基本形状 线段 笔画特性:stroke-width 笔画颜色stroke

1.4K20

这个开发者易忽略优化点,腾讯视频竟靠它省上千万元

但是蓝色可能还会有不同深浅,天空有时也可能被树木、山峰或其他对象掩盖,这些就需要另外记录。 从本质上看,无损压缩方法可以删除一些重复数据,大大减少要在磁盘上保存图像尺寸。...所选择颜色定义在压缩图像调色板图像每个像素都用调色板颜色索引表示。这种方法可以与抖动一起使用以模糊颜色边界。...它通常只支持 256 色索引颜色,导致只能通过抖动、差值等方式模拟较多丰富颜色,Alpha 通道只有 1 bit,这意味着一个像素只能是完全透明或者完全不透明,会有毛边效果。...它增加了对动画图像支持,同时加入了 24 位图像和 8 位 Alpha 透明支持,这意味着动画拥有更好质量,其诞生目的是为了替代老旧 GIF 格式。...通过图片裁剪能力支持,腾讯视频端侧可以根据业务指定尺寸实时裁剪生成任意尺寸图片,流程如下: 该策略一大特点是整个压缩裁剪过程全部在云上完成、支持自定义尺寸

72140

这个开发者易忽略优化点,腾讯视频竟靠它省上千万元

但是蓝色可能还会有不同深浅,天空有时也可能被树木、山峰或其他对象掩盖,这些就需要另外记录。 从本质上看,无损压缩方法可以删除一些重复数据,大大减少要在磁盘上保存图像尺寸。...所选择颜色定义在压缩图像调色板图像每个像素都用调色板颜色索引表示。这种方法可以与抖动一起使用以模糊颜色边界。...它通常只支持 256 色索引颜色,导致只能通过抖动、差值等方式模拟较多丰富颜色,Alpha 通道只有 1 bit,这意味着一个像素只能是完全透明或者完全不透明,会有毛边效果。...它增加了对动画图像支持,同时加入了 24 位图像和 8 位 Alpha 透明支持,这意味着动画拥有更好质量,其诞生目的是为了替代老旧 GIF 格式。...通过图片裁剪能力支持,腾讯视频端侧可以根据业务指定尺寸实时裁剪生成任意尺寸图片,流程如下: 该策略一大特点是整个压缩裁剪过程全部在云上完成、支持自定义尺寸

63320

AndroidBitmap详细介绍

位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。...RGB_565:R=5bit,G=6bit,B=5bit,不存在透明度,每个像素会占用2byte,共16bit. ALPHA_8:该像素只保存透明度,会占用1byte,共8bit....Bitmap回收 在安卓3.0以前Bitmap是存放在堆,我们只要回收堆内存即可 在安卓3.0以后Bitmap是存放在内存,我们需要回收native层和Java内存 官方建议我们3.0...注意:以上set方法,均有对应post和pre方法,Matrix调用一系列set,pre,post方法时,可视为这些方法插入到一个队列. 当然,按照队列从头至尾顺序调用执行....("aspectX", 1); intent.putExtra("aspectY", 1); // 裁剪后输出图片尺寸大小 intent.putExtra("outputX", 300);

2.3K10

Python图像处理

下面,我们打开当前目录下名为python.gif图像文件。 将其转换为JPEG格式,并保存在python_convert,jpg文件。 可以看到,程序在读取完文件之后图像模式转为了RGB。...滤镜有NEAREST,BILINER、BICUBIC(双三次方)、ANTIALIAS(抗锯齿)这四种可供选择,其中使用ANTIALIAS (抗锯齿)修改尺寸图像品质最高(损失最小)。...crop返回值存有剪裁后图像Image类对象。 1.5对图像进行滤镜处理 1.5.1全反色 进行滤镜处理必须获取像素值。...下面,我们打开当前目录下名为python.jpg图像文件,所有像素反色并保存为python_filter.jpg。 getdata()方法能够返回一个迭代器,用于逐一访问图像每一组像素值。...在上面例子,我们注意去除了每个像素像素值并进行反色(255减去色值)。等所有像素值处理完毕之后,用putdata方法替换了Image类对象像素

2.7K30

论文 | COTR 一种基于Transformer图像匹配网络

Correspondence Transformer 本文作者提出了一种匹配网络,输入两张图像以及其中一张图像任意一点,输出另外一张图像对应匹配点。...适配任意尺寸图像 本文网络输入固定尺寸。...对于任意尺度图像输入,第一步图像resize到,并估计初始匹配,在接下来裁剪和缩放过程,在原图匹配像素点周围取一个正方形区域,尺寸需要与当前缩放level适配(如上节介绍),随后方形区域resize...删除错误匹配 当待查询像素在另一张图像上被遮挡或不在视野内时,应该如何处理呢?类似于尺度补偿中介绍方法,排除那些相互一致性误差大于像素匹配对。 4.3.5....上表括号表示该算法针对该比赛做过精心裁剪过(用语义分割天空或行人上特征点滤除掉)结果,在此不做比较;作者针对上述测试结果提到“在2K特征阵营,本文算法最好”。

2.5K40

图像数据特征工程

对于自动驾驶汽车可以从背景移除像素。 加载一张图像(第2行)。然后这张图像转换为一个数组(第5行)。这个数组尺寸224 x 224 x 3。...图像高度和宽度224像素,每个像素都有一个R G B通道。为了裁剪图像,我们只选择y轴上位置25以上像素(第8行)。结果如图2所示。...可以通过将不需要像素变为黑色(第3行代码)来实现类似的结果。 通过裁剪,我们删除了不必要像素,这样可以避免模型对训练数据过度拟合。例如,背景椅子可能出现在所有左转处。...Intensity threshold 使用灰度化,每个像素值将在0到255之间。我们可以通过输入转换为二进制值来进一步简化输入。如果灰度值高于一个阈值,像素1,否则为0。...可以在图11看到所有这些。所有这些颜色RGB通道存储在一个列表变量-“colours”。 最后,我们每个RGB通道取最小值和最大值。这就给出了下界和上界。

69240

Python:有你们在样子真好

以上是效果图,通过获取微信好友头像图片组成背景,与个人头像融合,生成新头像图片 思路 利用开源微信接口itchat,扫码登录个人微信,读取好友信息头像存到本地,对头像图片进行裁剪、拼接和融合,最后生成图片再发送至微信文件传输助手...itchat.get_friends(update=True) # 发给文件助手 itchat.send_image('result.jpg', 'filehelper') #退出登录 itchat.logout() 获取头像图片 通过好友列表信息...,读取头像图片内容,存储到本地,这样就完成了头像素获取。...裁剪拼接 由于每个头像图片大小不一,需要统一标准裁剪。根据头像数量,计算略大些平方数来设置拼接后方图尺寸。..., gamma) 其中,alpha src1 透明度,beta src2 透明度,即 目标图像 = 图像1 * 透明度1 + 图像2 * 透明度2 + 亮度调节量 这里我采用了原个人头像0.7系数

31510

canvas 处理图像(上)

加载图像 canvas 高级功能(下)讲述了如何画布导出图像,将它保存到本地和与他人共享。现在,我们学习如何实现完全相反操作:图像加载到画布。...然后,通过把它src属性设置一个有效图像文件路径,就可以将该图像加载到图像元素,这就好像是设置了HTML img元素src属性。...前一个例子drawImage方法修改为以下形式,图像就能够被调整在画布完全显示:context.drawImage(image, 0, 0, 500, 333); 其中,宽度500像素,与画布宽度相等...这时,我们需要使用裁剪功能。 2.2 裁剪图像 裁剪目的是图像剪切较小尺寸,这通常是因为我们只需要使用被裁剪对象一部分。...裁剪画布所采取方法与流行照片编辑应用程序(如Adobe Photoshop)是完全相同:划定一个希望保留矩形区域,然后矩形以外全部内容删除

2K10

高性能图片优化方案

allocateJavaPixelRef,是 8.0 之前版本 Bitmap 像素Java heap 申请内存。其核心原理是Bitmap 像素是保存在 Java 堆上。...例如,我们原图是一张 2700 1900 像素照片,加载到内存就需要 19.6M 内存空间,但是,我们需要把它展示在一个列表页,组件可展示尺寸 270 190,这时,我们实际上只需要一张原图低分辨率缩略图即可...如果设置true则表示decode函数不会生成bitmap对象,仅是图像相关参数填充到option对象里,这样我们就可以在不生成bitmap而获取到图像相关参数了。...第一次:设置true则表示decode函数不会生成bitmap对象,仅是图像相关参数填充到option对象里,这样我们就可以在不生成bitmap而获取到图像相关参数。...具体可看:ImageSaveUtils第一步:创建图片文件,然后bitmap对象写到图片文件第二步:通过MediaStore图片插入到共享目录相册第三步:发送通知,通知相册刷新插入图片数据。

76630

PDF Plus for Mac(PDF处理工具)

PDF文档为生成PDF文件取有意义名称生成PDF文件保存在您选择文件夹以批处理方式裁剪PDF文档添加/删除PDF文档使用点或百分比定义裁剪矩形定义相对于PDF页面某个角裁剪矩形预览每个PDF...文档裁剪矩形选择将被裁剪页面和/或页面间隔给裁剪PDF文件取有意义名称裁剪PDF文件保存在您选择文件夹批处理模式下水印PDF文档添加/删除PDF文档在您PDF文档添加文本水印,您可以为其自定义以下内容...)笔触(通过添加笔触效果使文本更清晰可见)位置(您可以在以下位置中选择:左下,右下,左上,右上和居中)X偏移(用于文本精确水平定位)Y偏移(用于文本精确垂直位置)图像水印添加到PDF文档,您可以为其自定义以下内容...(您可以在以下位置中选择:左下,右下,左上,右上和居中)X偏移(用于图像精确水平定位)Y偏移(用于图像精确垂直位置)-选择要加水印页面和/或页面间隔-加水印PDF文件赋予有意义名称-水印...GIF和TIFF图像格式调整图像大小并更改其DPI和打印尺寸图像命名将生成图像保存在您选择文件夹以批处理模式编辑PDF属性添加/删除PDF文档更改PDF文档以下属性:标题,作者,主题,关键字使用

2K30

数码照片处理基本技法

更改照片像素尺寸 数码照片大小和质量与其像素大小和分辨率有密切关注。CS6在编辑图像之前,先设置图像大小分辨率。 图像|图像大小(Alt+Ctrl+I) ?...透视裁剪图片 透视裁剪工具与裁剪工具不同之处在于,后者只允许以正四边形裁剪画面,而前者允许用户使用人一四边形,在使用透视裁剪工具时,只需要分别点击画面四个点,即可定义一个任意形状四边形。...变彩色照片黑白照片 黑白命令或者图像|调整|去色,直接图像色色彩去掉并使每个像素保持原有的亮度值。 ? ?...使用内容感知移动工具 属性栏模式设置扩展,选取想要复制部分,移动到其他位置就可以实现复制操作,复制后边缘会自动弱化处理,与周围环境融合。 ?...内容识别比例缩放 编辑|内容识别比例 ,解决数码照片拍摄尺寸和照片冲洗尺寸无法吻合问题。 内容识别填充图像 编辑|填充。可以在抠图中去除多余东西,并且使其选区图像填充周围相似的内容。

1.2K30

关于前端photoshop初探学习笔记

通过对ps精确到像素寻找,可以修复某些因为马赛克等原因而产生问题,比如一种颜色去给另外一个点涂上颜色。。...注意各个工具之间配合。。 抠图 背景 ps默认背景。 羽化,选择区边缘进行模糊 photoshop 新裁剪工具 单击裁剪工具直接裁剪。拉直,矫正地平线倾斜。 删除裁剪像素。...图像裁剪之后大小和分辨率。图像高度,宽度设置(以像素单位) 黄金分割 黄金分割点。视觉效果很好图像。。 界面上面有一个三等分选项。 shift+o切换构图方式。。...alt+透明裁剪,放置中心点。。 可以原来不规则图形成为理想矩形图片。 ps切片工具用于网页设计。 用切片工具切出几个切片。 视图-显示-切片 -可以隐藏切片,但切片是真实存在。...观看颜色数值变化,明度,色彩变化有多少,全部取样点删除,可以单击清除按钮。 标尺工具 可以测出某个元素在图像大小,长度。 编辑-首选项-单位及标尺 一般选择厘米或像素。。

2.2K60

逼真复刻「完美中国情侣」!加强版Stable Diffusion免费体验,最新技术报告出炉

由此,这些因素导致了UNet模型参数大小2.6B,文本编码器总参数817M。 微调 潜在扩散模型(LDM)最大缺点是,由于它是两阶段架构,训练一个模型需要最小图像大小。...解决这个问题主要有2个方法,要么丢弃低于某个最小分辨率训练图像,(SD 1.4/1.5丢弃所有低于512像素图像)要么选择超小高级图像。...每个组件都使用傅里叶特征编码独立嵌入,并连接成一个向量,研究团队通过添加到时间步长嵌入来反馈到模型。 在推断时,用户可以通过这种尺寸调节来设置图像所需直观分辨率。...能够实现如此显著改善,是因为研究人员提出了一种简单而有效条件化方法: 在数据加载过程,统一采样裁剪坐标 和 (分别指定从左上角沿高度和宽度轴裁剪像素数量整数),并通过傅里叶特征嵌入将它们作为条件化参数输入模型...首先,在一个内部数据集上预训练一个基础模型,其高度和宽度分布显示60万个优化步骤,分辨率256 × 256,批大小2048,使用如上所述尺寸裁剪调节。

24210
领券