应用程序在drawInRect方法中崩溃

时间:2012-07-23 12:42:25

标签: ios objective-c uiview uiimage

我正在尝试在相册中保存图像。我这样做是通过以下代码完成的:

CGSize targetSize =self.view.frame.size;

UIGraphicsBeginImageContext(targetSize);


//UIGraphicsBeginImageContextWithOptions(targetSize, NO, 2.0); 

// Also tried this but no improvement 

UIImage* image1 = mkImage1.image; 

UIImage* image2 = mkImage2.image; 

UIImage* image3 = mkImage3.image; 

CGRect rectImage1 = CGRectMake(mkImage1.frame.origin.x , mkImage1.frame.origin.y , mkImage1.frame.size.width , mkImage1.frame.size.height );

CGRect rectImage2 = CGRectMake(mkImage2.frame.origin.x , mkImage2.frame.origin.y , mkImage2.frame.size.width , mkImage2.frame.size.height );

CGRect rectImage3 = CGRectMake(mkImage3.frame.origin.x , mkImage3.frame.origin.y , mkImage3.frame.size.width , mkImage3.frame.size.height );

[image1 drawInRect:rectImage1];  // crashing line 

[image2 drawInRect:rectImage2];

[image3 drawInRect:rectImage3];


 tempImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

UIImageWriteToSavedPhotosAlbum(tempImage, nil,nil,nil);

当我尝试绘制image1时,我的应用程序崩溃了。但是,如果我评论该行,则所有其他图像都正确保存而没有任何问题。

我的日志信息给我这个信息:

ImageIO`ImageIO_ABGR_TO_ARGB_8Bit: 
0x330abc70:  push   {r4, r5, r6, r7, lr}  
0x330abc72:  add    r7, sp, #12  
0x330abc74:  push.w {r8, r10, r11}  
0x330abc78:  ldr    r1, [r0]  
0x330abc7a:  ldr    r2, [r0, #12]  
0x330abc7c:  cmp.w  r2, r1, lsl #2  
0x330abc80:  blo    0x330abd06               ; ImageIO_ABGR_TO_ARGB_8Bit + 150  
0x330abc82:  ldr    r3, [r0, #24]  
0x330abc84:  lsls   r2, r1, #2  
0x330abc86:  cmp    r3, r2  
0x330abc88:  blo    0x330abd06               ; ImageIO_ABGR_TO_ARGB_8Bit + 150  
0x330abc8a:  ldr    r2, [r0, #4]  
0x330abc8c:  cmp    r2, #0  
0x330abc8e:  beq    0x330abd06               ; ImageIO_ABGR_TO_ARGB_8Bit + 150  
0x330abc90:  bic    lr, r1, #7  
0x330abc94:  ldr    r3, [r0, #8]  
0x330abc96:  ldr.w  r12, [r0, #20]  
0x330abc9a:  sub.w  r4, r1, lr  
0x330abc9e:  asrs   r5, r1, #3  
0x330abca0:  mov    r6, r12  
0x330abca2:  mov    r8, r3  
0x330abca4:  cbz    r5, 0x330abcbe           ; ImageIO_ABGR_TO_ARGB_8Bit + 78  
0x330abca6:  mov    r8, r3  
0x330abca8:  mov    r9, r5  
0x330abcaa:  mov    r6, r12  
0x330abcac:  vld4.8 {d0, d1, d2, d3}, [r8]!  
0x330abcb0:  vswp   d0, d2  
0x330abcb4:  vst4.8 {d0, d1, d2, d3}, [r6]!        // EXC_BAD_ACCESS   
0x330abcb8:  subs.w r9, r9, #1  
0x330abcbc:  bne    0x330abeac               ; slab_dealloc + 132  
0x330abcbe:  cmp    lr, r1  
0x330abcc0:  bge    0x330abcf8               ; ImageIO_ABGR_TO_ARGB_8Bit + 136  
0x330abcc2:  add.w  r8, r8, #2  
0x330abcc6:  adds   r6, #2  
0x330abcc8:  mov    r9, r4  
0x330abcca:  ldrb.w r11, [r8]  
0x330abcce:  subs.w r9, r9, #1  
0x330abcd2:  ldrb   r10, [r8, #-2]  
0x330abcd6:  strb   r11, [r6, #-2]  
0x330abcda:  ldrb   r11, [r8, #-1]  
0x330abcde:  strb   r11, [r6, #-1]  

//*************///  
Thread 1, Queue : com.apple.main-thread  
0x32ac2526 in -[UIImage drawInRect:] ()  
0x00018e32 in -[MyAppViewController saveToAlbum]  

当我将该图像从png转换为jpg时,一切正常。 但是我想要png格式才能保存。

0 个答案:

没有答案
相关问题