首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整图像大小时的棘手数学问题

调整图像大小时的棘手数学问题
EN

Stack Overflow用户
提问于 2009-08-05 00:02:29
回答 3查看 781关注 0票数 0

我有一个图像,我想要水印到其他图像的右下角部分。水印图像的尺寸为179宽,39高。

现在,如果我有另一个尺寸为150宽,20高的图像呢?如果我们尝试使用原始图像对其进行水印,它显然会太大,并且图像本身将被水印图像完全掩盖,对吧?

那么,我如何确定一个较小的宽度和高度,我将调整水印图像的大小,比150宽,20高要小得多,这样它将显示为静止的水印,而不会完全掩盖图像?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-05 00:22:49

您需要选取允许水印的较小图像的高度和宽度的最大百分比,然后将水印图像缩放到这两个最大值中较小的一个。您的结果将根据目标图像的高度是否大于宽度而有所不同,反之亦然。

例如,如果您希望水印不超过目标图像高度的25%,不超过目标图像宽度的50%,则可以看到如果将水印缩放到任意一个维度,水印应该有多大。

缩放到宽度的50%将意味着水印将是75x16像素,这太高了(基于我任意选择的百分比)。

(75 / 179) * 39 = 16

缩放到高度的25%将意味着22x5的水印。

(5 / 39) * 150 = 19

如果尺寸最终大于原始水印,则由您决定是否放大水印。与以相同的系数减小图像大小相比,增大图像大小时图像质量的下降要快得多。

票数 5
EN

Stack Overflow用户

发布于 2009-08-05 12:59:15

首先,我建议你生成一组不同大小的水印图像,而不是‘即时’调整大小。

下面我概述了如何在网站上动态添加水印的工作流程:

设计一个好的水印

首先,尝试设计具有透明背景的水印。这将大大降低掩盖目标图像重要部分的风险。这可以通过使用gif或(优选的) png图像文件格式来完成。只需确保透明水印在浅色和深色背景下都能很好地工作。

还要考虑如何最好地设计水印,使其既适用于肖像和风景样式的图像,也适用于宽高比不佳的图像。您应该考虑制作两个版本--一个用于宽图像,另一个用于高图像。对于后一种类型,您可以将水印旋转90度,或者,如果水印由文本组成,则可能需要将文本拆分为两行或更多行。

以几种不同大小的预先呈现水印

因此,不要动态调整水印的大小,我建议您渲染一组不同大小的水印图像。这只需要做一次,它将大大提高水印的清晰度和/或易读性(特别是对于较小的目标图像)。

根据网页上图像的不同程度,您可能需要更大或更小的大小。这是一个你必须做出的设计选择,但我认为你只需要两到三个不同的尺寸就可以了。

应用水印

这将在服务器端动态发生(在您的php文件中)。首先使用getimagesize函数找出目标图像的尺寸。有了这些信息,你必须根据大小、宽高比和方向来决定使用哪个版本的水印。例如。

代码语言:javascript
复制
if ( $width > $height ) {$useLandscapeWatermark=true;}
if ( $width > 100 && $width < 400 ) {$watermarkSize=2;}

等。

最后,为了应用水印,我建议您查看gd library。这是一个功能强大的库,可以做许多整洁的trix,其中包括合并两个图像。另一种选择是ImageMagic。

祝好运!

票数 2
EN

Stack Overflow用户

发布于 2009-08-05 00:09:18

我可能会将水印缩放到水印图像的20%,或179x39,以最小者为准。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1230528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档