当前位置: 首页 > 面试题库 >

如何自动裁剪和居中图像

长孙阳州
2023-03-14
问题内容

给定任意图像,我想从图像中心裁剪一个正方形并将其显示在给定的正方形内。


问题答案:

一种解决方案是使用以元素大小为裁剪尺寸的元素为中心的背景图像。

基本例子

.center-cropped {

  width: 100px;

  height: 100px;

  background-position: center center;

  background-repeat: no-repeat;

}


<div class="center-cropped"

     style="background-image: url('http://placehold.it/200x200');">

</div>

img标签示例

此版本保留了img标签,因此我们不会丢失拖动或右键单击以保存图像的功能。信贷帕克贝内特不透明度伎俩。

.center-cropped {

  width: 100px;

  height: 100px;

  background-position: center center;

  background-repeat: no-repeat;

  overflow: hidden;

}



/* Set the image to fill its parent and make transparent */

.center-cropped img {

  min-height: 100%;

  min-width: 100%;

  /* IE 8 */

  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";

  /* IE 5-7 */

  filter: alpha(opacity=0);

  /* modern browsers */

  opacity: 0;

}


<div class="center-cropped"

     style="background-image: url('http://placehold.it/200x200');">

  <img src="http://placehold.it/200x200" />

</div>

object-fit/-position

请参阅支持的浏览器 。

的CSS3图像规范定义object-fitobject-position属性,它们一起允许对规模更大的控制和一个的图像内容的位置img元素。有了这些,就有可能达到预期的效果:

.center-cropped {

  object-fit: none; /* Do not scale the image */

  object-position: center; /* Center the image within the element */

  height: 100px;

  width: 100px;

}


<img class="center-cropped" src="http://placehold.it/200x200" />


 类似资料:
  • 问题内容: 在Java中,从图像中自动裁剪出白色边框的最简单方法是什么?提前致谢… 问题答案: 如果要使白色部分不可见,最好的方法是使用图像滤镜并使白色像素透明,@ PhiLho 在此处讨论了一些很好的示例,如果要调整图像大小以免边框没有白色颜色,您可以通过四个简单的循环来完成此操作,我为您编写的这个小方法可以解决问题,请注意,它仅裁剪图像的上部,其余部分可以编写,

  • 我试图在JavaFX画布上显示非常大的图像。单个图像的分辨率为11980x8365。每个图像都有一个相应的世界文件,我可以用它来正确定位图像。我的画布尺寸是800x600。有时我需要把整个图像写在画布上,有时只是其中的一部分。 以下是我到目前为止所做的: 将文件中的全尺寸图像加载到Image对象中。 计算要显示图像的哪一部分,并计算缩放参数以正确地将其放入800x600画布中。 所以基本上我想使用

  • 导入图像资源后生成的 SpriteFrame 会进行自动剪裁,去除原始图片周围的透明像素区域。这样我们在使用 SpriteFrame 渲染 Sprite 时,将会获得有效图像更精确的大小。 Sprite 组件剪裁相关设置详解 和图片裁剪相关的 Sprite 组件设置有以下两个: Trim 勾选后将在渲染 Sprite 图像时去除图像周围的透明像素,我们将看到刚好能把图像包裹住的约束框。取消勾选,S

  • 导入图像资源后生成的 SpriteFrame 会进行自动剪裁,去除原始图片周围的透明像素区域。这样我们在使用 SpriteFrame 渲染 Sprite 时,将会获得有效图像更精确的大小。 Sprite 组件剪裁相关设置详解 和图片裁剪相关的 Sprite 组件设置有以下两个: Trim 勾选后将在渲染 Sprite 图像时去除图像周围的透明像素,我们将看到刚好能把图像包裹住的约束框。取消勾选,S

  • 我需要始终只使用CSS将随机大小的图像裁剪成160x160的正方形。裁剪时,图像应保持居中。 我的标记应该是: 在StackOverflow上搜索我找到了一些答案(例如CSS-如何将图像裁剪成正方形,如果它已经是正方形,则调整其大小),但它们不适用于图像水平(宽)或垂直(高)较大的情况。 具体来说,我需要能够呈现像这样的宽图像: 像这样的高大形象: 以正方形形式,事先不知道哪个是水平矩形还是垂直矩

  • 我试图在从图库中选择图像后使用intent来裁剪图像。以下是我的代码片段 在这里,我使用PICK_IMAGE_REQUEST意图句柄调用上面的代码段 由于我在裁剪后使用了相同的意图,即PICK_IMAGE_REQUEST,可能会出现什么问题