如何显示图像的唯一部分

Posted

技术标签:

【中文标题】如何显示图像的唯一部分【英文标题】:How to show the only part of the image 【发布时间】:2018-05-01 21:55:40 【问题描述】:

更新由于问题复杂且不清楚,我正在重写我的问题以使其更简单。

给定

图像(整个图像的图像 uri;示例中的 600x600 图像) left(x-coordinate; 50 from the example) top(y 坐标;示例中的 100) width(图片的宽度;示例中为300) height(图像的高度;示例中为 300)

我想要什么

300 x 300 图片(已裁剪为图片) 70 x 70 图片(我最终会将图片调整为 70 x 70 大小)

这是我的示例代码

// render the part of the image
console.log(left); // 50
console.log(thumbSize); // 300
return (
        <Image
          source=uri: image
          style=selectedStyle(left, top, thumbSize)/>
      );
... 
function selectedStyle(left, top, thumbSize) 
  return 
    left,
    top,
    width: thumbSize,
    height: thumbSize
  ;

UPDATE来自 zvona 的工作演示,我想要的是这个。

但仅此而已。

【问题讨论】:

我想这是一个非常难的问题 如果你有标签并且你不能让你的捏合正常工作,你需要按比例调整图像宽度和高度以标记区域宽度、高度、顶部和左侧。我不完全确定您的问题是什么,抱歉。 @Andrei 正在调整大小。我想我对简单的问题解释得太多了。我正在编辑我的问题。我会尽快通知你 亲爱的@Andrei,我刚刚为您编辑了整个问题。如果有什么不清楚的地方请告诉我:) 谢谢 因为您的出色插图而点赞 :) 【参考方案1】:

这是一个工作示例:https://snack.expo.io/@zvona/cropped-image

我们的想法是“裁剪”View,其中Image 以自定义尺寸定位在其中。我在示例中使用常量来说明情况。

<View style=styles.cropped>
  <Image
    style=styles.image
    source=uri: 'https://upload.wikimedia.org/wikipedia/en/0/02/Homer_Simpson_2006.png' />
</View>

关于样式:

  image: 
    marginLeft: -OFFSET_LEFT,
    marginTop: -OFFSET_TOP,
    width: IMAGE_WIDTH,
    height: IMAGE_HEIGHT,
  ,

  cropped: 
    width: 150,
    height: 150,
    overflow: 'hidden',
    position: 'absolute',
    left: OFFSET_LEFT,
    top: OFFSET_TOP,
  ,

请注意,ImageBackground 仅用于示例目的,实际实现中不需要。

【讨论】:

感谢您的意见。但是,我并不是要问如何显示裁剪的图像。我不想从图像中绘制正方形(使用 ImageBackground。它已经在工作了!!),我只想获取我在示例图像中描述的图像的一部分。 正如我所指定的,“我想要的”不是整个图像,而是已经裁剪的 300 x 300 图像(这就是我提供坐标、宽度/高度的原因)。 您实现了左图中的示例。但“我想要什么”是正确的。对不起。 图片的其余部分只是证明它被正确裁剪的证明。您可以忽略该部分,只关注代码的 View 和 Image 部分。 239 / 391 只是特定荷马图像的尺寸。您只需根据您的图像更改尺寸。所以在这种情况下是 600 / 600。裁剪区域大小的 150 / 150 也是如此。

以上是关于如何显示图像的唯一部分的主要内容,如果未能解决你的问题,请参考以下文章

如何在单个活动上水平排列多个图像

如何在鼠标悬停时突出显示图像地图的某些部分?

Iphone:如何在图像视图中显示文档目录图像?

android - 如何剪切图像的某些部分并在imageview中显示

如何在 UICollectionView 的部分标题中显示图像和标签?

如何在 HTML/CSS 中只显示图像的一部分?