微信小游戏保存自定义分享图到相册实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小游戏保存自定义分享图到相册实例相关的知识,希望对你有一定的参考价值。

参考技术A 自定义绘制纹理文本,借助画布以图片形式保存至玩家相册,常用于制作游戏分享图。

实例中包含一张背景图(来自官方打飞机样例素材)和两行文本。

调用 wx.saveImageToPhotosAlbum 前需要用户授权 scope.writePhotosAlbum

wx.saveImageToPhotosAlbum 传入参数 filePath 的格式必须如下图,http开头:

如果使用游戏引擎(egret、laya等)进行开发,默认会创建一个canvas,直接用 canvas.toTempFilePathSync 方式进行保存临时文件,返回结果 tempFilePath 可能与预期不符,这种格式能用于分享(已测试可行),简单可理解为仅用于微信环境内部流通,无法外流,例如不能保存到相册等。

解决方法:新建一个临时画布,然后绘制保存即可。

另外,由于微信官方限制,egret的 toDataURL 已无法使用,base64方式走不通,如此只能用原生方法 drawImage 来绘制图片。

Github地址:
https://github.com/pury/wxgame-demos/tree/master/save-picture-to-album

By Pury.

将屏幕截图保存到自定义相册

【中文标题】将屏幕截图保存到自定义相册【英文标题】:Save Screenshot to Custom Photo Album 【发布时间】:2013-06-23 20:21:01 【问题描述】:

我目前正在创建一个新应用程序,该应用程序分析用户的某些方面并使之变得有趣。

但我被困在一个部分,在应用程序结束时,当用户返回他们的结果时,我想要它,以便他们可以将其保存到专门用于此应用程序屏幕截图的自定义相册中。

-(IBAction)save:(id)sender 
toolBar.hidden = YES;

[self performSelector:@selector(screenPause) withObject:nil afterDelay:0.001];

-(void)screenPause 
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
screenshotImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
 UIImageWriteToSavedPhotosAlbum(screenshotImage, nil, nil, nil);
[self performSelector:@selector(screenPauseOne) withObject:nil afterDelay:0.001];


这就是我当前捕获屏幕的方式。如您所见,我只是将其保存到默认相册。我将如何创建一个新相册,然后将捕获的图像放入其中?

提前致谢, 拉菲

【问题讨论】:

【参考方案1】:

您需要使用 AssetsLibrary 框架。

这是一个解释如何做的教程:

http://www.touch-code-magazine.com/ios5-saving-photos-in-custom-photo-album-category-for-download/

【讨论】:

很抱歉,您能否解释一下我需要使用什么。我试图按照该教程进行操作,但没有找到运气。你能一步一步解释吗? 帮助类看起来很有用:gist.github.com/sapzildj/2773458 只需调用[ALAssetsLibraryUtil saveImage:img toAlbum:@"myAlbum" withCompletionBlock:block] 我刚刚用我的完整代码编辑了我的问题。我仍然不明白如何实现这个!如果我要去 n00by,我很抱歉! XD【参考方案2】:

据我了解,phix23 告诉您的是您要查找的代码是:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo

  [self.library saveImage:image toAlbum:@"YourCustomAlbumName" withCompletionBlock:^(NSError *error) 
    if (error!=nil) 
    
        NSLog(@"Big error: %@", [error description]);
    
  ];

[picker dismissModalViewControllerAnimated:NO];

[self 开头的代码块是魔法发生的地方。

【讨论】:

我已经实现了这一点,但它只是推出了一个名为 HUD 的新相册,并且图像也没有保存在相机胶卷中。我做错了什么? 好的。看看之前的问答,它与您当前的问题相同。 ***.com/questions/10954380/…

以上是关于微信小游戏保存自定义分享图到相册实例的主要内容,如果未能解决你的问题,请参考以下文章

不用备案也能支持微信自定义分享

微信拍照不保存相册怎么设置

[GitHub开源]Android自定义View实现微信打飞机游戏

彻底搞懂微信小游戏中的分享功能

微信小游戏转发分享等功能实现

微信 6.5.1 for iOS发布 可以在朋友圈分享相册中的视频