IOS Save pictures to albums
Last Update:2015-06-05
Source: Internet
Author: User
<span id="Label3"></p><p class="p1"><p class="p1"><span class="s1">Sometimes we have the need to save images, such as using Uiimagepickercontroller to take pictures with a built-in camera on an iOS device, or sometimes we take advantage of Uikit's Uigraphicsbeginimagecontext in the app, The Uigraphicsendimagecontext,uigraphicsgetimagefromcurrentimagecontext method creates an image that needs to be saved. The iOS Uikit framework provides the Uiimagewritetosavedphotosalbum method for saving images, which saves the image to the User's album, as described Below:</span></p></p> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">1</span></p></td> <td class="td2" valign="top"><p class="p3"><span class="s2"><strong>void</strong> <span class="s1">Uiimagewritetosavedphotosalbum (</span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">2</span></p></td> <td class="td3" valign="top"><p class="p3"><span class="s4"><span class="s3">UIImage *image,</span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">3</span></p></td> <td class="td4" valign="top"><p class="p3"><span class="s5"><span class="s1">ID completiontarget,</span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">4</span></p></td> <td class="td5" valign="top"><p class="p3"><span class="s4"><span class="s3">SEL completionselector,</span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">5</span></p></td> <td class="td6" valign="top"><p class="p3"><span class="s5"><span class="s2"> <strong>void</strong> <span class="s1"> *contextinfo</span></span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">6</span></p></td> <td class="td7" valign="top"><p class="p3"><span class="s3">);</span></p></td> </tr> </tbody> </table><p class="p1"><p class="p1"><span class="s1">Parameter description:</span></p></p><p class="p1"><p class="p1"><span class="s1">Image</span></p></p><p class="p1"><p class="p1"><span class="s1">Uimage object with saved picture</span></p></p><p class="p4"><p class="p4"><span class="s1"></span></p></p><p class="p1"><p class="p1"><span class="s1">Completiontarget</span></p></p><p class="p1"><p class="p1"><span class="s1">After saving the image to the album, call Completiontarget specified selector (optional)</span></p></p><p class="p4"><p class="p4"><span class="s1"></span></p></p><p class="p1"><p class="p1"><span class="s1">Completionselector</span></p></p><p class="p1"><p class="p1"><span class="s1">The Completiontarget method corresponds to the selector, equivalent to the callback method, the following format should be satisfied</span></p></p> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">1</span></p></td> <td class="td8" valign="top"><p class="p3"><span class="s1">-(<span class="s2"><strong>void</strong><span class="s1">) image: (UIImage *) image</span></span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">2</span></p></td> <td class="td9" valign="top"><p class="p3"><span class="s3">Didfinishsavingwitherror: (nserror *) Error</span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">3</span></p></td> <td class="td10" valign="top"><p class="p3"><span class="s5"><span class="s1">contextinfo: (<span class="s2"><strong>void</strong> <span class="s1"> *) contextinfo;</span> </span> </span></span></p></td> </tr> </tbody> </table><p class="p1"><p class="p1"><span class="s1">CONTEXTINFO Specifies that incoming data can be selected in the Callback.</span></p></p><p class="p4"><p class="p4"><span class="s1"></span></p></p><p class="p5"><p class="p5"><span class="s1">When we need to asynchronously get the message of the image save result, we need to specify the Completiontarget object and its completionselector corresponding Selector. Examples are as Follows:</span></p></p><p class="p4"><p class="p4"><span class="s1"></span></p></p> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">01</span></p></td> <td class="td11" valign="top"><p class="p3"><span class="s1">-(<span class="s2"><strong>void</strong><span class="s1">) saveimagetophotos: (uiimage*) savedimage</span></span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">02</span></p></td> <td class="td12" valign="top"><p class="p3"><span class="s3">{</span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">03</span></p></td> <td class="td13" valign="top"><p class="p3"><span class="s5"><span class="s1">uiimagewritetosavedphotosalbum (image, self, @selector (image:didFinishSavingWithError:contextInfo:), NULL);</span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">04</span></p></td> <td class="td12" valign="top"><p class="p3"><span class="s3">}</span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">05</span></p></td> <td class="td14" valign="top"><p class="p6"><span class="s1">Specifying callback methods</span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">06</span></p></td> <td class="td13" valign="top"><p class="p3"><span class="s3">-(<span class="s6"><strong>void</strong><span class="s3">) image: (UIImage *) image didfinishsavingwitherror: (nserror *) error contextinfo: (<span class="s6"><strong>void </strong> <span class="s3">*) contextinfo</span> </span> </span></span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">07</span></p></td> <td class="td15" valign="top"><p class="p3"><span class="s1">{</span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">08</span></p></td> <td class="td16" valign="top"><p class="p3"><span class="s4"><span class="s3">NSString *msg = nil; </span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">09</span></p></td> <td class="td17" valign="top"><p class="p3"><span class="s5"><span class="s2"> <strong>if</strong><span class="s1">(error! = NULL) {</span></span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">10</span></p></td> <td class="td4" valign="top"><p class="p3"><span class="s4"><span class="s3">msg = @<span class="s7">"save picture failed"<span class="s3"> ;</span> </span> </span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">11</span></p></td> <td class="td18" valign="top"><p class="p7"><span class="s1"><span class="s8">}<span class="s2"><strong>else</strong><span class="s8">{</span> </span> </span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">12</span></p></td> <td class="td4" valign="top"><p class="p3"><span class="s4"><span class="s3">msg = @<span class="s7">"save picture success"<span class="s3"> ;</span> </span> </span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">13</span></p></td> <td class="td19" valign="top"><p class="p7"><span class="s1"><span class="s8">}</span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">14 </span> </p> </td> <td class="td20" valign="top"><p class="p3"><span class="s4"> <span class="s3">uialertview *alert = [[uialertview alloc] initwithtitle:@<span class="s7"> "save picture result hint" </span> </span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">15 </span> </p> </td> <td class="td21" valign="top"><p class="p7"><span class="s1"> <span class="s8">message:msg </span> </span> </p> </td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">16 </span> </p> </td> <td class="td22" valign="top"><p class="p7"><span class="s3"> <span class="s9">delegate:self </span> </span> </p> </td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">17 </span> </p> </td> <td class="td23" valign="top"><p class="p7"><span class="s1"> <span class="s8">cancelbuttontitle:@<span class="s10"> "ok" </span> </span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">18</span></p></td> <td class="td24" valign="top"><p class="p7"><span class="s3"><span class="s9">otherbuttontitles:nil];</span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">19</span></p></td> <td class="td25" valign="top"><p class="p3"><span class="s5"><span class="s1">[alert show];</span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">20</span></p></td> <td class="td12" valign="top"><p class="p3"><span class="s3">}</span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">21st</span></p></td> <td class="td12" valign="top"><p class="p3"><span class="s1"></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">22</span></p></td> <td class="td26" valign="top"><p class="p6"><span class="s3">Invoke Example</span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">23</span></p></td> <td class="td27" valign="top"><p class="p3"><span class="s1">UIImage *savedimage = [UIImage imagenamed:<span class="s10">"savedimage.png"<span class="s1">];</span> </span></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s3">24</span></p></td> <td class="td12" valign="top"><p class="p3"><span class="s3"></span></p></td> </tr> </tbody> </table> <table class="t1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="td1" valign="top"><p class="p2"><span class="s1">25</span></p></td> <td class="td28" valign="top"><p class="p3"><span class="s1">[self saveimagetophotos:savedimage];</span></p></td> </tr> </tbody> </table><p><p>IOS Save pictures to albums</p></p></span>