Java 用指定的图像数据替换给定图像的一部分

Java 用指定的图像数据替换给定图像的一部分,java,image-processing,java-2d,Java,Image Processing,Java 2d,例如,我有下面的图像 我想做的是 选择此图像的任何形状[大部分为矩形],并仅使用相同大小的其他图像数据创建该区域 比如说 我想上面的图像是用来取代任何形状的数据到目标图像 我认为解决办法如下 标记每个形状的位置、宽度和高度,并给它们一个 唯一id将形状元数据存储在数组或HashMap中 从数组中随机选取任意形状的元数据[此时 点我们有X,Y以及形状与目标的宽度和高度 图像]使用缓冲图像遍历打开目标图像 单击并将像素位置与以前选择的形状进行比较 元数据如果匹配,则将该部分[像素值]替换为 上传

例如,我有下面的图像

我想做的是

选择此图像的任何形状[大部分为矩形],并仅使用相同大小的其他图像数据创建该区域

比如说

我想上面的图像是用来取代任何形状的数据到目标图像

我认为解决办法如下

标记每个形状的位置、宽度和高度,并给它们一个
唯一id将形状元数据存储在数组或HashMap中
从数组中随机选取任意形状的元数据[此时
点我们有X,Y以及形状与目标的宽度和高度
图像]使用缓冲图像遍历打开目标图像
单击并将像素位置与以前选择的形状进行比较
元数据如果匹配,则将该部分[像素值]替换为
上传的示例图像,在替换之前,我应该调整源图像[大部分为矩形]的大小,以适合目标图像的目标形状

我的方向正确吗?


欢迎提出任何建议。

我想你是对的。但是你打算如何获取形状元数据,因为有些包含纹理,或者它们将被预定义?@blackSmith源图像是静态的,每次都是相同的,因此我们可以从Phtotoshop或类似的东西中捕获单个形状的位置、宽度和高度,是吗?@kiheru我对setClip没有问题,你能再给我一点吗?@Mihir:是的,会更容易。源图像的缩放应该从低维开始。@blackSmith下一步是什么?