在 iPhone 上另存为图像

Posted

技术标签:

【中文标题】在 iPhone 上另存为图像【英文标题】:Save as Image on the iPhone 【发布时间】:2014-11-18 14:19:08 【问题描述】:

我有一个主要通过 iPhone 访问的网站。 在我的页面上,用户有机会获得折扣券。我需要实现一个功能,用户可以使用该功能将优惠券图像保存在他的设备上。

我创建了一个控制器,它向客户端返回一个文件,但不幸的是浏览器只显示图像,因为它知道内容类型是image/png

有没有办法让iPhone直接保存图片?

这是我的控制器操作代码

[AllowAnonymous]
public ActionResult SaveAsImage( string code, int campaign ) 
    string theUrl = string.Format( Constants.DEFAULT_CONSUME_URL, code, campaign );
    var barcodeWriter = new BarcodeWriter() 
        Format = BarcodeFormat.QR_CODE,
        Options = new EncodingOptions 
            Height = 250,
            Width = 250,
            Margin = 0
        
    ;
    using ( var bitmap = barcodeWriter.Write( theUrl ) ) 
        using ( var stream = new MemoryStream() ) 
            bitmap.Save( stream, ImageFormat.Png );
            var cd = new System.Net.Mime.ContentDisposition 
                // for example foo.bak
                FileName = "coupon.png",
                // always prompt the user for downloading, set to true if you want 
                // the browser to try to show the file inline
                Inline = false,
            ;
            Response.AppendHeader( "Content-Disposition", cd.ToString() );
            return File( stream.ToArray(), "image/png" );
        
    

【问题讨论】:

简答,不。您必须指示用户保存图像。但是您可以使用您的服务器可以创建的 Passbook 文件来允许用户保存优惠券。您可以在此处阅读有关 Passbook 的更多信息:developer.apple.com/passbook 你为什么不使用 Passbook ;),但我认为你运气不好,无法强制下载。我刚刚根据 Apple 示例做了一些简单的存折代码:developer.apple.com/library/ios/documentation/UserExperience/… 【参考方案1】:

简短的回答,不。

您必须指示用户保存图像。但是您可以使用您的服务器可以创建的 Passbook 文件来允许用户保存优惠券。

您可以在此处阅读有关 Passbook 的更多信息:Passbook 编程指南 苹果简单存折示例:Building Your First Pass

【讨论】:

以上是关于在 iPhone 上另存为图像的主要内容,如果未能解决你的问题,请参考以下文章

另存为 出现的这个框框叫啥?

JavaScript 将元素另存为图像或 Extjs 4.x 另存为图像

如何为图像创建另存为按钮

生成 div 的图像并另存为

打开“另存为”对话框以下载图像

在 MATLAB 中将频谱图另存为图像