css如何做到对图像任意位置的设定。。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css如何做到对图像任意位置的设定。。。相关的知识,希望对你有一定的参考价值。

如果是用的DW的话,方法很多,我这里只介绍一种给你参考!

1、用DIV+CSS来实现(直接插入图片<img src="图片链接" alt="图片描述" /> )
通常,可以先把图片转换为区块display:block;或者display:inline-block;因为图片属于内联块,但把图片设置为区块后,把图片设置width和height后(不设定也可以,建议设定图片本身的高度),就可以通过padding(内边距)或者margin(外边距)来对图片的位置进行移动!

2、可以通过背景图片来实现:(DIV+CSS)

方法:background:url(图片链接) no-repeat(只显示一次) 图片移动的位置(可以是left/right/top/bopttom,当然也可以用百分比来实现,就要看你要移动的位置了)

希望帮助到你!

参考资料:个人的经验,纯属手打,拒绝copy

参考技术A 通常这种情况都是应用在background样式中的,可以通过指定background-position-x和background-position-y的对齐方式或篇移坐标来显示图像的某一区域.通常使用这种方式时还需指定元素的高(和/或)宽及平铺方式. 参考技术B 使用定位属性,设置它的left和top属性值来控制具体位置,例如
<div style="width:500px;height:400px;border:1px solid red;position:relative;">
<img src="852869179433967774.jpg" style="width:100px;height:100px;position:absolute;left:200px;top:200px;"/>
</div>

如何找到黑色像素位置

【中文标题】如何找到黑色像素位置【英文标题】:How to find Black Pixel locations 【发布时间】:2012-07-29 21:03:28 【问题描述】:

我正在做一个奇怪的项目。我可以使用我用来制作模板(金属)的激光切割机。我可以使用坐标对机器进行编程以切割特定图像,但我想知道的是:我如何编写一个程序来获取黑白扫描图像,并给我黑色的坐标领域?我不介意它是否给出了每个像素,即使我只需要外线,我也可以做到这一点。

我已经对此进行了一段时间的搜索,但这个问题有很多单词以及很多结果,例如颜色和像素,因此我发现了大量不相关的信息。我想使用 C++ 或 C#,但我可以使用任何语言,包括脚本。

【问题讨论】:

我不是这方面的专家,但也许可以使用 OpenCV。 听起来你需要某种边缘检测算法。查看docs.opencv.org/doc/tutorials/imgproc/imgtrans/canny_detector/… 【参考方案1】:

我在C#中使用了GetPixel

public List<String> GetBlackDots()

    Color pixelColor;
    var list = new st<String>();
    for (int y = 0; y < bitmapImage.Height; y++)
    
        for (int x = 0; x < bitmapImage.Width; x++)
        
            pixelColor = bitmapImage.GetPixel(x, y);
            if (pixelColor.R == 0 && pixelColor.G == 0 && pixelColor.B == 0)
                list.Add(String.Format("x:0 y:1", x, y));
        
    
    return list;

【讨论】:

我认为这是我将使用的方法,主要是为了学习更多 C#。多么有用的功能。感谢这个伟大的起点。 我认为这是我们可以在 EMGU C.V. 中使用像素颜色(例如检查特定像素是否为黑色)的唯一方法【参考方案2】:

如果我们假设扫描的图像是完美的白色和完美的黑色,没有中间颜色,那么我们可以将图像作为一个 rgb 值数组并简单地扫描 0 值。如果值为0,它一定是黑色的吧?但是,图像可能不会完全是黑色的,因此您需要一些回旋余地。

然后你所做的看起来像这样:

    for(int i = 0; i < img.width; i++)
       for(int j = 0; j < img.height; j++)
          // 20 is an arbitrary value and subject to your opinion and need.
          if(img[i][j].color <= 20)
             //store i and j, those are your pixel location
       
     

现在,如果您使用 C#,则可以轻松导入大多数图像格式,将 em 粘贴到数组中并获得结果。但是如果你想要更快的结果,你最好使用 C++。

此快捷方式完全依赖于非常极端的图像值。如果您的图像的大片区域真的是灰色的,那么这种方法的准确性很糟糕。

【讨论】:

使用 unsafe 块和指针,您可以非常接近 C++ 的速度。 除了您建议的阈值之外,我还建议使用线性插值,因为颜色在确切像素中作为整数变化的可能性非常小。它可能是一个像素分数,而不是一个精确的像素整数。 感谢您的回复,这正是我正在寻找的东西。所有的回复实际上都是我想要的。一个很好的开始。【参考方案3】:

虽然有多种语言的多种解决方案,但我将概述一个我自己可能会使用的简单解决方案。有一个用于 Python 的强大成像库,称为 PIL(Python Imaging Library - http://www.pythonware.com/products/pil/),它可以很容易地完成您需要的工作。

这是一个可以帮助您入门的示例。

image = Image.open("image.png")
datas = image.getdata()

for item in datas:
    if item[0] < 255 and item[1] < 255 and item[2] < 255 :
        // THIS PIXEL IS NOT WHITE

当然,这将计算任何不完全白色的像素,您可能需要添加一些填充,以便不完全白色的像素也被拾取为白色。您还必须跟踪当前正在查看的像素。

【讨论】:

也感谢您的回复,我想我会使用 C# 回复,但这对我来说是其他项目的重要信息。非常好,易于阅读:)

以上是关于css如何做到对图像任意位置的设定。。。的主要内容,如果未能解决你的问题,请参考以下文章

float 浮动详解

fastreport4 picture 动态 设定大小,我的产品图像打印需要从数据库中读取,再按一定比例进行缩小。

css的问题,div,input的display属性设定为inline,为啥宽度高度依然有效

22 , CSS 构造颜色背景与图像

如何设定CSS控制元素内部的元素之间间距

matlab设定x轴原点距离位置