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

从PHP到RGB到HSV

万坚壁
2023-03-14
问题内容

在PHP中,将RGB三元组转换为HSV值的最直接方法是什么?


问题答案:
<?php
function RGB_TO_HSV ($R, $G, $B)  // RGB Values:Number 0-255
{                                 // HSV Results:Number 0-1
   $HSL = array();

   $var_R = ($R / 255);
   $var_G = ($G / 255);
   $var_B = ($B / 255);

   $var_Min = min($var_R, $var_G, $var_B);
   $var_Max = max($var_R, $var_G, $var_B);
   $del_Max = $var_Max - $var_Min;

   $V = $var_Max;

   if ($del_Max == 0)
   {
      $H = 0;
      $S = 0;
   }
   else
   {
      $S = $del_Max / $var_Max;

      $del_R = ( ( ( $var_Max - $var_R ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max;
      $del_G = ( ( ( $var_Max - $var_G ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max;
      $del_B = ( ( ( $var_Max - $var_B ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max;

      if      ($var_R == $var_Max) $H = $del_B - $del_G;
      else if ($var_G == $var_Max) $H = ( 1 / 3 ) + $del_R - $del_B;
      else if ($var_B == $var_Max) $H = ( 2 / 3 ) + $del_G - $del_R;

      if ($H<0) $H++;
      if ($H>1) $H--;
   }

   $HSL['H'] = $H;
   $HSL['S'] = $S;
   $HSL['V'] = $V;

   return $HSL;
}


 类似资料:
  • 我正在尝试使用libswscale将YUV帧转换为RGB。 下面是我的代码: 我的程序在sws_刻度功能上没有故障。 VideoFrame是一个AVFrame结构,它保存着我解码的帧。 我认为这是因为YUV帧来自avcodec_decode_video2,它返回这样的数组: 虽然YUV420P理论上只有一个平面(根据维基百科,YUV420P是一种平面格式,然后Y、U、V数据被分组在一起)。所以,我

  • 问题内容: 如何将RGB格式的颜色转换为十六进制格式,反之亦然? 例如,转换为。 问题答案: 注 :这两个版本的期待整数值,并且,所以你需要,如果你有非整数值做自己的舍入。 以下将执行RGB到十六进制的转换,并添加任何所需的零填充: 转换另一种方式: 最后,在答案中讨论并在@cwolves的评论中建议使用的替代版本: 更新 这是它的一个版本,还解析了一个速记的三元组,例如“#03F”:

  • 问题内容: 我正在尝试将一些数据从Node.js应用程序发布到PHP脚本。目前,我只是在构建概念证明,但无法将实际数据传递到PHP端。请求通过,我得到200,但PHP认为$ _POST数组为空。 这是我的节点代码: 同样,该请求将其发送到localhost:8050 / machines / test / index.php,但是当我执行$ _POST的var_dump时,它是一个空数组。 我怀疑

  • 问题内容: 我有一个通过jQuery AJAX调用的PHP脚本。我希望PHP脚本将JSON格式的数据返回给javascript。这是PHP脚本中的伪代码: 基本上,我需要将两个for循环的结果插入$ json中。 问题答案: Php具有内置的JSON序列化功能。 json_encode *如果可以并且不会遭受“此处未发明”综合症, *请 使用它。

  • 问题内容: 我有一个通过jQuery AJAX调用的PHP脚本。我希望PHP脚本将JSON格式的数据返回给javascript。这是PHP脚本中的伪代码: 基本上,我需要将两个for循环的结果插入$ json中。 问题答案: Php具有内置的JSON序列化功能。 json_encode *如果可以并且不会遭受“此处未发明”综合症, *请 使用它。

  • 问题内容: 我正在尝试在C#中加密某些(cookie)数据,然后在PHP中对其进行解密。我选择使用Rijndael加密。我几乎可以正常工作了,只是只有部分文本被解密了! 这是我正在加密的文本(JSON)(已删除敏感信息): 因此,我登录到C#应用程序,该应用程序从存储的Key和IV创建/编码cookie,然后重定向到应该解密/读取cookie的PHP应用程序。当我解密cookie时,它会像这样显示