- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想构建一个类似于 nametest 或 Meaww 的 facebook 应用程序,并且几乎成功地让我的 API 调用 Facebook Graph API 并从 facebook 返回数据。让我感到困惑的是上述网络应用程序的用户界面。当您在 Meaww 或 Nametests 上完成测试时,结果以图像 (Jpeg) 格式呈现给用户。我只是不知道他们如何设法使用所有 CSS 样式等将 HTML 动态转换为图像,以及如何将其作为图像返回给用户?有没有可能把这个场景在 ASP.NET MVC Too 中付诸实践呢?如果是,那么我需要提示才能做到这一点。
下面是 Meaww 测试生成的图片。
编辑:更具体...我有一个 public async Task<ActionResult> FB_Analyse()
我的 Controller 中的操作通过图形 API 调用从 facebook 获取数据到 facebook,然后将数据值传递给模型,然后在操作结束时返回如下 View :
public async Task<ActionResult> FB_Analyse()
{
var access_token = HttpContext.Items["access_token"].ToString();
if (!string.IsNullOrEmpty(access_token))
{
var appsecret_proof = access_token.GenerateAppSecretProof();
var fb = new FacebookClient(access_token);
#region FacebookUser Name and Picture plus other Info
//Get current user's profile
dynamic myInfo = await fb.GetTaskAsync("me?fields=first_name,last_name,link,locale,email,name,birthday,gender,location,age_range,about".GraphAPICall(appsecret_proof));
dynamic myinfojson = JsonConvert.DeserializeObject(myInfo.ToString());
ViewBag.UserName = myinfojson.name;
ViewBag.UserGender = myinfojson.gender;
//get current picture
dynamic profileImgResult = await fb.GetTaskAsync("{0}/picture?width=200&height=200&redirect=false".GraphAPICall((string)myInfo.id, appsecret_proof));
ViewBag.ProfilePictureURL = profileImgResult.data.url;
#endregion
dynamic myFeed = await fb.GetTaskAsync(
("me/feed?fields=likes{{name,pic_large}}")
.GraphAPICall(appsecret_proof));
string result = myFeed.ToString();
var jsonResult = JsonConvert.DeserializeObject<RootObject>(result);
var likes = new List<Datum2>();
foreach (var likeitem in jsonResult.data)
{
if (likeitem.likes != null)
{
foreach (var feedlikeitem in likeitem.likes.data)
{
likes.Add(feedlikeitem);
}
}
}
return view(likes);
}
然后在我看来我有这个简单的<div>
如下图标记:
<div class="imageWrapper" style="position: relative">
<img class="girl img-responsive" src="~/images/TestPictures/mHiDMsL.jpg" style="position: relative; z-index: 1;" />
<img src="@ViewBag.Picture" alt=.. width="100" height="100" style="position: absolute;left:80px; top: 80px;z-index: 10;" />
<img src="@ViewBag.ProfilePictureURL" alt=.. width="200" height="200" style="position: absolute;left:300px; top: 160px;z-index: 11;" />
</div>
如您所见,我有三个不同的 <img>
标签。一张是另外两张图片的背景,另外两张是一张 Facebook 用户图片,第二张是 Facebook 用户 friend 的图片,它们都放在背景图片的顶部。我要达到的目标是晴朗如蓝天。我想将这三张图片合二为一,然后将其作为一张图片显示给用户。
请帮助我迷路了。
最佳答案
SO 经过大量网上冲浪和深入分析 Meaww和 Nametests我发现他们正在使用第三方工具进行图像托管和操作 Cloudinary .
I am answering my own question so that any other person who faces sucha problem shouldn't be bothered with a lot of stuff and testingdifferent third party libraries which is not relevant to the problemat all as I were struggling much with the same.
让我们首先对 Cloudinary
做一些说明:Cloudinary 是一种基于云的服务,提供端到端的图像管理解决方案,包括上传、存储、操作、优化和交付。
借助 Cloudinary,您可以轻松地将图像上传到云端,自动执行智能图像处理,而无需安装任何复杂的软件。然后,您的所有图像都通过快速 CDN 无缝交付,经过优化并使用行业最佳实践。 Cloudinary 提供全面的 API 和管理功能,并且易于与新的和现有的 Web 和移动应用程序集成。
Cloudinary
提供 SDK 并支持各种编程技术,包括 .Net、PHP、Java、Rubby
等...
还有一些类似于Cloudinary
的服务,比如Blitline但是 Cloudinary
的好处是这项服务是面向程序员和非程序员的。这意味着如果某人没有编程经验,他仍然可以使用此服务。因为它为用户提供了一个非常智能的仪表板。
我想我已经提出了太多的观点,所以现在是时候实际一点来回答这个问题了。
要处理上述问题,我们必须通过包管理器控制台使用以下命令安装 CloudinaryDotNet
nuget 包。
安装 - 包 CloudinaryDotNet
安装包后,我们可以实例化对 Cloudinary
服务的 API 调用。注意:1st. 我们必须创建一个Cloudinary
帐户。幸运的是,Cloudinary
提供了一个没有时间限制的免费帐户。2. 在您的 .Net
项目中配置您的 Cloudinary
帐户。
using CloudinaryDotNet;
using CloudinaryDotNet.Actions;
Account account = new Account(
"my_cloud_name", // Upon creating account you'll be given a cloud name.
"my_api_key", // Your API Key/Id.
"my_api_secret"); // Your App Secret.
Cloudinary cloudinary = new Cloudinary(account);
使用 Cloudinary 上传图片:为了能够操作图像,图像应该已经上传到您的 Cloudinary
帐户中。这可以直接从 Cloudinary
仪表板完成,也可以从您的 Web 应用程序以编程方式完成,如下所示:
var uploadParams = new ImageUploadParams()
{
File = new FileDescription("File Path or Directly for a URL"),
PublicId = "sample_id",// each image on the server should be named differently if this option is not assigned cloudinary will automatically assign one to it.
Tags = "Tags for Images",
};
var uploadParamsResult= cloudinary.Upload(uploadParams); // this line will upload image to the cloudinary server.
当上面的一切都准备就绪后,使用 Cloudinary
操作图像就很简单了:
您可以将任何图像操作/转换为:
定位在另一张图片中。
放置类似“棕褐色”的效果。
用文本和图像覆盖它并 many更多的。下面是一个简单的例子:
@Model.Api.UrlImgUp.Transform(new Transformation().Width("700").Height("370").Effect("sepia").Width("200").Height("200").Crop("thumb").Gravity("face").Radius("max").Overlay("image1").重力(“西”).Y(18).X(20).Chain().Width("150").Height("150").Crop("fill").Radius("20").Border(4, "#553311").Overlay("image2"). Gravity("east").Y(18).X(20)).BuildImageTag("Background_Pic")
老实说,对我来说就是这样。
关于c# - 无论如何使用 asp.net mvc 从 3 个图像 URL 中制作一个图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41692795/
我有一个我想暂时存储的对象。该对象现在在 Controller 中, Controller 将生成一个 View 。 AJAX 请求从 View 发送到下一个 Controller 。那一刻我需要先前
从MVC 2开始,我们可以轻松创建区域。现在,我的问题与嵌套区域(区域内部的区域)有关。 选择我的“father”区域文件夹,右键单击> Add> NO选项以获取new Area。 是否有可能以其他方
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我已经尝试了一些谷歌搜索和堆栈流搜索,但事实证明这比我想象的要难找到。我需要为我们的商店迁移到 ASP.NET MVC 2 的管理提供理由。最大的帮助将是任何企业级站点或使用 ASP.NET MVC
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 6 年前。 Improv
我有一些常见的网页,它们将出现在多个 MVC 应用程序中。对于这些页面,我想在不同的 MVC 网站之间重用相同的源代码( Controller + View )。这样做的最佳方法是什么? ASP.NE
我正在使用 Spring MVC 来构建我的应用程序。 当用户在浏览器中运行应用程序时,我想显示一个默认的 jsp。我不想用 web.xml 中的标记。 我想我可以用 我已经创建了一个文件夹并添
我可能在这里分析过度了,但是根据我对 MVC 的阅读,似乎有很多关于如何做事情的观点。 是否有一个“最佳实践”网站或文档来定义 MVC 各个部分的职责? 请记住,我使用 EF/Repository&U
当杰里米和查德 posted about their FubuMvc project ,他们提到的差异化因素之一是他们的“雷霆穹顶校长”: The “Thunderdome Principle” –
我正在为 Spring MVC 应用程序实现缓存清除系统。 为了让这个系统正常工作,我必须从给定的 url 中删除“缓存破坏代码”。假设我生成的缓存破坏代码是“123”,我有一个 .css url:/
在调试 ASP.NET MVC 源时,我发现使用了“MVC-ControllerTypeCache.xml” 文件。但我无法理解这个文件的用途。我的意思是这个文件存储在哪里?asp.net MVc 如
我刚刚在我的本地机器上安装了 Visual Studio 11 和 MVC 4 beta。但是,每当我打开一个 MVC 3 项目(我想保留为 MVC 3)时,所有引用都已更新为版本 4 DLL。当然它
我有一个 MVC 3 应用程序,它具有一些核心功能(最重要的是自动化),但主要用作不同区域或模块的门户。我想将它组织到不同的模块中,只需稍作更改也可以部署为他们自己的网站。 该项目由论坛、博客引擎、用
我有自己的服务器,正在考虑将我的一个解决方案升级到 ASP.NET MVC 4,然后再升级其余的 (3+)。 作为其中的一部分,我下载了 the standalone installer对于 ASP.
构图 我有一个 MVC 项目,其中包含 C# 类,这些类最终通过 ajax 等进行序列化和使用。我使用 TypeLite 生成这些 C# 类的定义( here 讨论了 TypeLite 的替代方案),
我正在尝试了解现代 Web 应用程序架构。在 ASP.NET MVC 中,所有业务逻辑类都在 Model 中,Controller 接受并引导用户请求。如果我使用它,是否可以使用本身是 MVC 架构但
我有一个带有 OWIN 的 WebAPI 2 应用程序。现在我正在尝试向所有内容添加一个 MVC 5 Controller ,但没有找到我的 MVC 路由。我收到以下错误: No HTTP resou
在 MVC 3 中,他们添加了我一直在使用的依赖解析器。在回答某人对您发表评论的问题时,您应该使用 Ninject MVC 3 插件。 所以我的问题是为什么要使用它而不是内置的?如果这是要走的路,你如
我是 ASP.NET MVC 的新手,我正在寻找最不痛苦的方法来设置全局错误处理、日志记录和报告(通过电子邮件)。仅供引用,我的 ASP.NET MVC 应用程序在 Azure 中作为 Web 角色托
何时使用 MVC View 页面和 MVC View 内容页面?它们有什么区别? 最佳答案 **MVC View Page 用于创建页面,MVC VewP Content Page 用于创建页面并指定
我是一名优秀的程序员,十分优秀!