【问题标题】:How to put an image on another image如何将一张图片放在另一张图片上
【发布时间】:2012-03-09 11:32:32
【问题描述】:

我有以下脚本

<div class="left">
<img src="image1.jpg" height="186" width="160" /> 
</div>

<div class="center">
<img src="image2.jpg" height="186" width="160" /> 
</div>

<div class="right">
<img src="image3.jpg" height="186" width="160" /> 
</div>

生成以下内容:

我有这个简单的表格来上传图片:

<form action="upload/image" method="post">
<input type="file" name="upload_image" />
<input type="submit" />
</form>

上传图片的原因是看看杯子(上图)在图片上的样子。

现在上传图片后,杯子看起来像下面这样

图-2

现在,如果您仔细查看上面的图片,您会发现上传的图片贴在杯子上,好像是用 Photoshop 设计的,但实际上并非如此。

现在我的问题是,请您告诉我如何将上传的图像粘贴到咖啡杯的所有三个图像上,并使它们看起来像图 2。

在此先感谢 :)

附言 我从这个网站得到了这个想法-> http://www.zazzle.com/cr/design/pt-mug

我正在尝试实现与网站相同的目标(我已经尝试了很长时间但没有结果...未能将上传的图像放在杯子的图像上)。

这是我在这里使用的图片的下载链接http://i43.tinypic.com/d66h4.png

【问题讨论】:

  • 它工作正常...(也identical code wth)
  • 是您提供网站的链接,还是您尝试复制的示例
  • 好吧,鉴于 Skype 图像,这在 css 中是不可能的!您必须在 Gimp 或 PS 中创建具有透明度的人造效果,并绝对定位上传的图像并逐像素调整。
  • 我很确定这对于 html、javascript 和 css 是不可能的,正如@elclanrs 所说。从页面发出的请求来看,该站点似乎正在使用 dll 来呈现图像。很可能它使用了一些第三方程序或他们用 c 或 c++ 等语言编写的代码
  • 您可以使用 html5 画布或 webgl。杯子的 3d 模型和纹理就可以了。

标签: php jquery css


【解决方案1】:

是的,你可以这样做。

如果您检查来自 Zazzle.com 的给定 url,在上传图像后,它正在调用他们服务器上的一个程序 - “designall.dll”。它正在发挥所有魔力。

正如我们其他朋友所提到的,仅使用 HTML、CSS 和 JavaScript(不使用 Canvas)是不可能实现这种效果的。

但是使用一些服务器端程序,您可以毫无问题地实现这一点。

当我在 LAMP 上编程时,我给出了一个使用 PHP 和 ImageMagick 实现相同的解决方案。

  • 用户上传图片。
  • 图像将被发送到后端 PHP 文件。
  • PHP 会根据我们的要求扭曲图像。
  • 创建三个副本并存储在具有某个唯一 ID 的临时文件夹中。
  • 作为响应,我们将获得一些成功代码。
  • 一旦我们获得成功代码,我们将从临时文件夹加载图像。
  • 当用户点击任何类型的图片时,我们会根据需要更新图片。

关于实际的失真代码,您可以使用 ImageMagick 插件。

有关 ImageMagick 插件的更多信息,请访问: ImageMagick Website

有关使用 ImageMagick 扭曲(实际包裹)图像的方法的更多信息,请访问:WrappingDistrotion。这些链接也包含大量带有预览的示例。

对于我们的示例,我们需要创建一些静态代码,这些代码每次都会以相同的形状扭曲图像。

如果我遗漏了什么,请告诉我。

朋友们,如果有更好的解决方案,请帮助“black_belt”。

谢谢。

【讨论】:

  • “仅仅使用 HTML、CSS 和 JavaScript 是不可能达到这种效果的。”我会非常不同意。 Javascript 和画布可以非常强大
  • 是的,我同意 AlanFoster 的观点。在不使用 Canvas 的情况下,仅使用 HTML、CSS 和 JavaScript 是不可能实现这种效果的。很抱歉造成混乱。
猜你喜欢
  • 2013-08-16
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
  • 1970-01-01
  • 1970-01-01
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多