आप OpenCV और here या here
// Read the main background image
cv::Mat image= cv::imread("Background.png");
// Read the mans character image to be placed
cv::Mat character= cv::imread("character.png");
// define where you want to place the image
cv::Mat newImage;
//The 10,10 are the initial coordinates in pixels
newImage= image(cv::Rect(10,10,character.cols,character.rows));
// add it to the background, The 1 is the aplha values
cv::addWeighted(newImage,1,character,1,0,newImage);
// show result
cv::namedWindow("with character");
cv::imshow("with character",image);
//Write Image
cv::imwrite("output.png", newImage);
पर जांच कर सकते हैं या आप एक watermark effect
के रूप में यह बना सकते हैं openCV का उपयोग कर सकते हैं ओवरले छवियों या फिर आप इस सीएल का उपयोग कर की तरह merging two images
कोशिश जावा में यह कोशिश कर सकते हैं गधा
public class MergeImages {
public static void main(String[] args) {
File inner = new File("Inner.png");
File outter = new File("Outter.png");
try {
BufferedImage biInner = ImageIO.read(inner);
BufferedImage biOutter = ImageIO.read(outter);
System.out.println(biInner);
System.out.println(biOutter);
Graphics2D g = biOutter.createGraphics();
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.8f));
int x = (biOutter.getWidth() - biInner.getWidth())/2;
int y = (biOutter.getHeight() - biInner.getHeight())/2;
System.out.println(x + "x" + y);
g.drawImage(biInner, x, y, null);
g.dispose();
ImageIO.write(biOutter, "PNG", new File("Outter.png"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
स्रोत
2013-08-28 11:14:10
क्या आपने ओपनसीवी की कोशिश की है। [उदा।] के लिए (http://stackoverflow.com/questions/11155333/opencv-merging-two-images-using-opencv) –
अन्य छवियों में केवल लड़का, या पृष्ठभूमि भी शामिल है? अगर यह सिर्फ लड़का है, तो बिना किसी विशेष एपीआई के करना आसान है। यदि नहीं, तो आपको कुछ विशेष की आवश्यकता होगी ... –
@androiddeveloper: अन्य छवियों में भी एक ही पृष्ठभूमि शामिल है। मुझे चित्रों के बीच अंतर खोजने और उन्हें मर्ज करने की आवश्यकता है। –