问题标签 [resize-image]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1595 浏览

codeigniter - 使用 Codeigniter 处理图像的最佳实践:生成拇指或动态调整大小

我知道有很多关于 CI 生成缩略图等方面的文章,但我想解释一下我做了什么,看看我能找到什么样的最佳实践建议。这是我的故事……</p>

目前,我有一个网站,允许用户在首次创建帐户后将照片集上传到他们创建的项目中。创建帐户后,该站点以下列方式为用户为五个预定义项目中的每一个生成文件夹:

/students/username/project_num/images/thumbs/

(也就是说,在预先创建的学生文件夹中,username、project_num、images 和 thumbs 文件夹会递归创建五次。)

当用户将图像上传到项目时,我有一个画廊控制器,它将完整的图像上传到 project_num 的图像文件夹中,然后创建一个较小的缩略图来保持其比例。到现在为止还挺好。

在显示这些缩略图和完整图像的网站的索引页面上,我有点脑筋急转弯,以为我可以简单地输出完整图像,同时通过 css 调整它的大小以获得“中等大小”图像,这将导致单击时变为全尺寸图像。

(要清楚,路径是:点击缩略图—>通过ajax将缩放的全尺寸(中尺寸)图像加载到拇指上方的显示区域—>单击中尺寸图像—>通过灯箱加载全尺寸图像,或类似的东西。)

到目前为止,我已经完成了所有工作,除了正如人们想象的那样,使用 css 调整全尺寸图像的大小并不能保持拇指的纵横比,这意味着我需要找到调整这些大小的最佳方法。

在考虑它时,我认为我有两个选择:

  1. 当用户单击缩略图以通过 ajax 加载中等大小的图像时,我可以即时调整图像的大小。(我的画廊控制器中有一个方法'get_image($ url)',它只是加载带有图像标签的视图和传递给它的图像源等)我想也许我可以先将它发送到我的画廊模型,调整大小它在飞行中,并将其发送到视图。我遇到的问题是动态调整它的大小并回显它会给我原始图像数据(我很抱歉,我不知道这是正确的术语)。我尝试使用 data_uris 将原始数据格式化为可回显的内容,但没有成功。这种方法可行吗?

  2. 我考虑的第二个选项是在用户上传图片时生成第二个中等大小的缩略图,并将维护比率设置为 true。这种方法不太理想,因为在为用户提供删除项目的方法时,我需要扫描另外一组要删除的图像。绝对不是什么大不了的事,但我认为可以通过动态生成中等大小的图像来避免一些事情。

我希望我的解释很清楚,如果啰嗦的话!我很想知道人们对处理这个问题的最佳方法有什么建议。

非常感谢您的阅读,任何建议都非常感谢!

史蒂夫·K。

0 投票
5 回答
2023 浏览

c++ - 缩放 CBitmap - 我做错了什么?

我编写了以下代码,它尝试获取 32x32 位图(通过 MFC 的资源系统加载)并将其转换为 16x16 位图,因此它们可以用作 CListCtrl 的大小 CImageLists。但是,当我打开 CListCtrl 时,所有图标都是黑色的(在小视图和大视图中)。在我开始调整大小之前,一切都在大视图中完美运行。

我究竟做错了什么?

0 投票
3 回答
18937 浏览

java - 是否有 100% Java 替代 ImageIO 来读取 JPEG 文件?

我们正在使用 Java2D 调整上传到我们网站的照片的大小,但我们遇到了一个问题(一个看似旧的问题,参见: http: //forums.sun.com/thread.jspa?threadID=5425569) - 一些特殊的 JPEGCMMException当我们尝试ImageIO.read()包含其二进制数据的 InputStream时引发 a :

(截断堆栈跟踪的其余部分,即我们的ImageIO.read()调用、servlet 代码等)

我们将其缩小到使用特定相机拍摄的照片,我选择了一张触发此错误的照片:http: //img214.imageshack.us/img214/5121/estacaosp.jpg。我们注意到这只发生在 Sun 的 JVM 上(在 Linux 和 Mac 上,刚刚在 1.6.0_20 上进行了测试)——一台带有 OpenJDK 的测试机器可以顺利读取相同的照片,这可能是由于 JPEG 读取器的不同实现。

不幸的是,我们无法在生产环境中切换 JVM,也无法使用 ImageMagick ( http://www.imagemagick.org/ ) 等依赖于本机的解决方案。

考虑到这一点,我的问题是:是否存在可以处理链接照片等照片的 ImageIOs JPEG 阅读器的替代品?如果没有,我们可以使用另一种 100% 纯 Java 照片大小调整解决方案吗?

谢谢!

0 投票
3 回答
2005 浏览

html - 网站上可调整大小的背景

是否可以在调整浏览器窗口大小时调整网页背景图像的大小?

0 投票
3 回答
2650 浏览

php - 将图像大小调整为精确大小,保留纵横比并填充 php 中的任何空间

嘿,

假设我想将图像转换为精确尺寸,例如:400x300。诀窍是,如果图像由于其纵横比不适合 400x300,则将其放置在带有黑色边框的位置。

一个 900x1200 的图像将被转换为 225x300 以保持其纵横比,然后在左右两侧添加黑色边框以使其成为 400x300。

原始照片:

调整大小后,我想看起来像这样:

的:“+++++++”我想要一些颜色,和“|||||||” 是图像,在中间!

不幸的是,我还没有任何代码!

我想要这样的东西:http: //phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php#x22 谢谢

0 投票
1 回答
1961 浏览

php - 在 PHP GD 中调整 png 大小时将 jpg 与 png 合并(水印)

我相信我可以以某种方式解决这个问题,但是因为我不是 PHP 人,所以我花了很长时间。希望有人可以在几分钟内为我设置脚本......

所以这就是我需要做的:
我将 2 张图片从智能手机传输到网络服务器。这两张图片需要合并(加水印)。它们略有不同:

  1. 图片是 2 兆像素 jpg(拿着照片)
  2. 图片将是480x800像素的png透明背景(拿着简单的手指画)

现在我需要合并这些图像。第二个(png)需要缩放到第一个(jpeg)的分辨率。

请注意两点:

  1. 我只能使用安装在服务器上的 GD 库。imagick 或类似的不可用
  2. 我很清楚第二张图片的质量不会很好。没关系。

那么有人可以帮我解决这个问题吗?就像我说的,我一直在搞乱几个 GD 函数,但进展太慢了。我想我找到了imagecopywatermark所需的功能。但我找不到将它们组合在一起的正确方法。

在此先感谢,
斯特夫

太感谢了

0 投票
1 回答
1150 浏览

php - 使用 PHP 建议调整图像大小

根据以前的经验,我注意到到目前为止,我不太擅长其他人创建的“脚本”与我自己现有的代码集成在一起。我需要一些建议来理解这个人对使用 PHP 调整图像大小的看法:

在评论中,他写道:

然后,他给出了一个实际的例子,也作为评论:

我猜,他希望脚本的用户拥有与上述类似的东西img src。所以,我的问题是:我将如何真正使我的图片来源类似于上面的示例?下面是我的一些代码。它显示了我如何保存图片以及我如何回显/显示它们。它来自uploader.php

将照片保存在文件夹中后,我将文件路径保存在 MySQL 表中,然后调用文件路径以显示图片(以下代码)。来自于profile.php

因此,如果我使用上面的 img src 显示“实际”图片,我将如何传递类似于“脚本示例”中的参数?

谢谢你。

0 投票
1 回答
2580 浏览

matlab - 调整图像大小并在matlab的新文件夹中保持新大小

我在matlab中编写了以下代码。从这段代码中,我将图像序列作为文件夹的输入并调整这些图像的大小。现在我需要将它们以新大小存储在输出文件夹中。任何人都可以帮助我更新此代码。

0 投票
2 回答
296 浏览

asp.net - 加载和调整上传的图像大小会很危险吗?

我有一个带有上传控件的 ASP.NET 表单,供用户发布图像。在服务器上,我加载该图像(使用 Bitmap 类)并调整它的大小。

当用户上传恶意或受影响的文件时这样做是否有任何危险,或者代码会在某个时候抛出异常并停止整个过程?

0 投票
1 回答
1550 浏览

iphone - 简单调整图像大小

我一直在尝试使用一种常用来调整图像大小的方法。不使用此方法,这里是获取图像 url 的代码。

这工作正常。但是当我尝试使用这种方法时:

并使用它来调用它:

然后像这样放入我的桌子:

什么都没有出现。我在这里缺少什么吗?