当前位置: 首页 > 知识库问答 >
问题:

php - 关于通过图片获取图片中的RGB区间值问题?

秦信瑞
2023-10-16

test.jpeg

由于公司需求原因需要从试剂中获取每个圆圈(总共6个)里的RGB区间值
之前是没有做过此类 后来问了一下ChatGPT 以及通过查阅资料写了代码

 for ($y = max(0, $y_center - $radius);$y<=min($height -1,$y_center+$radius); $y++){            for($x=max(0,$x_center-$radius);$x<= min($width -1,$x_center +$radius);$x++){//                对每一个坐标点进行判断,只有在圆的范围内的坐标点我们才取出它的RGB值                if(pow($x - $x_center,2) + pow($y - $y_center,2) <= pow($radius,2)){                    $rgb=imagecolorat($img,$x,$y);                    $colors[$x][$y] =[                        'r'=>($rgb >> 16 ) & 0xFF,                        'g'=>($rgb >> 8) & 0xFF,                        'b'=> $rgb & 0xFF                    ];                }            }        }

去获取RGB 区间值 结果就是陷入死循环 请教哪位大神做过?

共有1个答案

昌栋
2023-10-16

从你的代码来看,你正在使用 PHP 语言,并且通过 imagecolorat 函数来获取图片中特定坐标的 RGB 值。你的代码逻辑看起来是正确的,它遍历了图像中每个像素,并检查该像素是否位于以中心点为圆心、以半径为边界的圆内。如果像素在圆内,你就获取该像素的 RGB 值,并将其存储在 $colors 数组中。

你提到你的代码陷入了死循环,这可能是由以下原因导致的:

  1. 你的 $x_center$y_center,和 $radius 的值可能没有正确设置,导致你的圆没有覆盖到你要检测的所有区域。
  2. 你可能没有正确地终止你的循环。在你的 for 循环中,你应该检查 $x$y 是否超出了图像的边界,并且应该在循环体结束后增加或减少相应的值。
  3. 检查 $img 变量是否正确加载了你的图像,如果 $imgfalseimagecolorat 函数会返回 false

我建议你检查上述可能的问题。如果你已经确定了这些变量的值,并且图像已经正确加载,但仍然遇到死循环的问题,那么你可能需要更深入地调试你的代码,看看是否有其他的问题导致了这个问题的出现。

如果你在调试过程中遇到了其他问题或者需要更多的帮助,随时都可以向我询问。

 类似资料:
  • 问题内容: 这是我的问题。 我使用FancyBox来显示图像,这些图像是通过AJAX获取的。加载页面时,页面上没有图像,只有具有画廊名称的属性链接。 因此,当我单击以下链接之一处理此代码时: 此解决方案工作正常。但是当我使用 代替 我得到带有响应文本的弹出窗口。 演示版 我做错了什么? fancyBox-jQuery插件 版本:2.0.5(21/02/2012) jQuery 1.7-最新 “ g

  • X2.2.0新增 sp_get_image_url($file,$style='') 功能: 转化数据库保存图片的文件路径,为可以访问的url 参数: $file: 数据库中保存的文件名 $style:样式(七牛) 返回: 类型string,图片可以访问的url 使用: $url = sp_get_image_url('portal/23232.png');

  • cmf_get_image_url($file, $style = '') 功能 转化数据库保存图片的文件路径,为可以访问的url 参数 $file: string 文件路径,数据存储的文件相对路径 $style: string 图片样式,支持各大云存储 返回 string 图片链接 例子 <?php // 数据存储的文件相对路径 $image_filepath='portal/12341234

  • cmf_get_content_images($content) 功能 获取html文本里的图片列表 参数 $content: string html 内容 返回 array 图片列表 数组item格式: [ "src"=>'图片链接', "title"=>'图片标签的 title 属性', "alt"=>'图片标签的 alt 属性' ]

  • 我写一个油猴脚本想获取验证码的base64,但是获取的不是图一哪个预加载的圈圈,就是图二只有一部分,要怎么获取全部图片啊,如下图 https://demo.eyoucms.com/login.php?s=Admin/login

  • 本文向大家介绍php通过获取头信息判断图片类型的方法,包括了php通过获取头信息判断图片类型的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php通过获取头信息判断图片类型的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。