根据原始图像输出百分比调整预览图像的大小
Resize preview image based on original image output percentage
我需要一些调整大小算法的帮助。
场景:
- 有可打印的原始图像
- 浏览器中显示了此原始图像的预览。(假设宽度为750px)
我从一个外部系统接收关于原始图像的裁剪数据。现在我必须在预览图像上显示相同的裁剪框。
预览图像被放置到HTML img标记中。jquery guillotine插件将附加到元素上,以在"裁剪框"中显示图像。(https://github.com/matiasgagliano/guillotine)
我设法计算出了正确的宽度、高度、x、y。。。问题在于为预览图像设置正确的比例。
这些是从外部系统返回的参数:
- 调整原始图像的大小百分比(=outputCT)
- 预览图像大小调整的比率(previewWidth/originalWidth=previewRatio)(-宽度、高度、x、y……)
问题:
如何根据上面的参数计算预览图像的比例?不可能只使用outputct,因为:
- 如果原始输出ct>1,则需要进一步放大预览
- 如果原始输出ct=1,则预览需要缩放到100%
- 如果原始输出Pct<1,则预览需要缩小
预览的输出需要与真实图像的输出完全相同。
Allready尝试了多种变体,但未能找到合适的解决方案。当然需要实现一个更数学的解决方案来解决这个问题。
提前感谢!
如果我做对了,有一个图像(原始)正在被裁剪,您无法访问或使用它,并且可以使用该图像的预览。您需要生成与外部系统从原始图像中生成的裁剪图像完全相同的,但使用预览图像。
更简单的解释方法是,基本上您应该将预览再次转换为原始图像,这样您就可以应用与外部系统相同的转换,并获得完全相同的输出。预览和原始图像(previewWidth/originalWidth
)之间的比率是将预览的尺寸乘以原始图像的比率的倒数。
如果这一点很清楚,我们可以一次完成。与其放大预览,然后应用裁剪比例(我想outputPct),不如直接应用(1/ratio)*croppingScale
的比例,并保持其余的比例,就像外部系统给你的一样。使用Guillotine,它将是:
var ratio = previewWidth / originalWidth; # = previewHeight / originalHeight
$('#preview-img').guillotine({
width: croppingWidth, # The width of the original image after it's cropped!
height: croppingHeight,
init: {
x: xOffset, # Movements over the x and y axes (if any)
y: yOffset, # just as given by the external system.
scale: croppingScale / ratio
}
});
这应该会得到相同的输出,但请记住,即使它具有相同的尺寸,并包含相同的图像部分,如果预览明显较小,您也会在图像质量上出现明显的损失。
我希望解决它,快乐编码!
感谢您的帮助!经过几天的搜索,我发现这不是一个错误的outputct。问题出在新闻部。预览始终以96dpi生成,原稿可以是任何dpi。在计算比例时,我需要确保将outputct与dpiRatio相乘。
- 如何使用url加载程序在webpack中导入多个图像
- nodejs-expressjs上传图像并显示它们
- 使用JSP从服务器检索和显示图像
- 角度:在ng重复上切换图像
- 画廊图像未显示
- 如果宽度是百分比,如何设置以px为单位的图像高度
- 灯箱类型的东西,使图像成为浏览器高度的百分比
- 如何用百分比制作随机图像生成器
- 使用图像滚动达到页面中的最大内容,然后应该使用窗口百分比隐藏图像
- 以百分比为基础的 HTML 图像
- 图像高度与图像宽度成比例,但图像宽度以父项的百分比为单位
- 按百分比调整大小的图像按钮
- 根据原始图像输出百分比调整预览图像的大小
- Chrome显示自适应图像和宽度的百分比正确,Firefox没有
- 使用百分比大小的堆栈图像
- 将图像设置为屏幕的百分比,而不是像素
- 图像大小与百分比减慢网站
- 如何显示网站加载的百分比,而不是gif或任何动画图像
- 是否可以使用百分比相对定位将推杆图像定位在另一个图像上?
- JavaScript图像加载百分比