2 starwar2012 starwar2012 于 2012.12.07 09:47 提问

将两张图片重叠后显示为新图片

想要实现两张图片重叠后显示为新突破,但是运行后模拟器什么也没显示

代码如下:

- (void)viewDidLoad
{
    [super viewDidLoad];

    image1 = [[UIImage alloc]init];

    image1 = [UIImage imageNamed:@"iphone.png"];

    imageA = [[UIImageView alloc]initWithImage:image1];


    [self merge];

}

-(void)merge
{
  CGSize size = CGSizeMake(320, 480);
    UIGraphicsBeginImageContext(size);

    CGPoint thumbPoint = CGPointMake(0,0);
    imageview.image = imageA.image;
    [imageA.image drawAtPoint:thumbPoint];

    imageB = [[UIImage alloc]init];

    imageB = [UIImage imageNamed:@"Favorites.png"];

    CGPoint starredPoint = CGPointMake(0, 0);
    [imageB drawAtPoint:starredPoint];

    UIImage *imageC = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    imageview.image = imageC;

    [self.view addSubview:imageview];

}

请高手指点,问题出在哪了?谢谢

1个回答

g989_1314125
g989_1314125   2012.12.07 13:42
已采纳

把你所有地方merge里面的代码换成下面的:

-(void)merge
{
    CGSize size = CGSizeMake(320, 480);
    UIGraphicsBeginImageContext(size);

    CGPoint point1 = CGPointMake(0,0);
   //两张图像必须有不同点,不然看不来是重叠
    CGPoint point2 = CGPointMake(100,100);

    UIImage *imageOne = [UIImage imageNamed:@"Image1.png"];
    [imageOne drawAtPoint:point1];



    UIImage *imageTwo = [UIImage imageNamed:@"Image2.png"];
  // 如果需要两张图片混搭,可以添加类似如下代码
  //  [imageTwo drawAtPoint:point2 blendMode:kCGBlendModeMultiply alpha:0.5];

    [imageTwo drawAtPoint:point2];


    UIImage *imageC = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(100,100,200,200)];
    iv.image=imageC;

    [self.view addSubview:iv];


}
starwar2012
starwar2012 谢谢!
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android获取两张图片重叠部分,并融合
最近遇到一个需求,在Android设备上采集到的红外热图,由于像素比较低(60x80),无法看清楚拍摄的内容,经过讨论,决定将红外热图覆盖在可见光图上进行展示。但是可见光相机和红外相机位置存在偏差,实际上拍摄的两张图片不能直接进行覆盖。所以在覆盖之前,需要手动两张图片进行校准。这就是本文所要展示的内容。难点这个需求最大的难点就是,如何得到两张图片重叠的部分。1.在屏幕上绘制可见光照片,自适应屏幕。...
相对定位 绝对定位 两张图片完全重叠的处理方法之背景图
#div1{ width:200px; height:200px; margin:100px auto; border:1px solid #404040; position:relative; } #tu1{ width:200px; height:200px; background:url("t1.g
opencv两张同大小图片合并重叠
 #include "stdafx.h" #include #include #include #include using namespace cv; using namespace std; int _tmain(int argc, _TCHAR* argv[]) {    double alphaValue = 0.5;  double betaValue
python pil 第三方库实战之二:图片叠加
2、图片叠加 from PIL import Image,ImageFont,ImageDraw im=Image.open('car.jpg') im=im.rotate(20) im1=Image.open('steve.jpg') im1.thumbnail((700,400)) im.paste(im1,(100,70)) im.show() 最后效果:
css布局两张图片重叠
最外层用relative,里面用absoulte
两张图片叠加成一张图片后使用
文章出处:http://www.eoeandroid.com/thread-165467-1-1.html 使用xml文件可以让两个图片合并成一张图的效果。 合成的效果: 资源图片: 具体实现方法,在drawable文件夹中新建一个login_head.xml文件,文件的内容为:
实现ImageView中两张图片重叠显示
第一种XML配置 使用layer-list标签 然后设置 image.setImageDrawable(getResources().getDrawable(R.layout.layer)); 第二种代码生成 Resources r = getResources(); Drawable[] layers = new Drawable[
java多张图片重叠。包括透明图片
这个代码可以把多张图片重叠成一张图片。如果是透明图片透明的部分还保持透明。 代码中是三张图片叠加,并且改变了其中一张图片的大小
使用ViewPager一屏加载多张图片,图片重叠问题
需求 实现 存在问题需要满足一系列条件才会出现 步骤分析 分析原因 最后解决方案 完整源码注文中传递View的方式个人认为不是最佳谨慎模仿 需求:使用Viewpager显示图片,每一屏显示3张图片,下拉刷新需要刷新图片实现:重写getpageWidth方法,return 1.0f/3即可,重写getItemPosition方法返回POSITION_NONE以实现下拉刷新。存在问题(需要满足一系列条件
python里面的图片叠加操作
PIL是比较常用的python图片处理模块,刚才学习了一下如果将一个图片叠加在另外一个图片上面的方法。 例子代码如下: 下载: im.py import Image n12090 = Image.new('RGB',(120,90),'black') n12060 = Image.new('RGB',(120,70),'white') n12090.paste(n120