php的简单颜色问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php的简单颜色问题相关的知识,希望对你有一定的参考价值。

新手 刚刚接触php编程 想问一下 editplus中编写的程序为何没有颜色
另外:屏幕字体已经检查过 为默认状态。

个人感觉editplus不好使

推荐同是小体积软件的 notepad++
4m多一点吧 完全免费 我用了一年多了

另外 你确定你的文件时php的后缀 不是ep自动生成的.bak ?
参考技术A 需要软件:photoshop

方法一:用图章工具
用photoshop工具打开图像,用图章工具按住alt键的同时点击红色区域,可以复制一片红色;在灰色区域直接点鼠标可以刷出红色来覆盖。

方法二:用色相调整

先用选择工具选下面灰色部分,可以按住ctrl或alt键来进行多次选择,选择时可以在“羽化”项中填写一个数字,这样选出来的区域,边缘是渐变的。 选好区域后,在图像菜单里找到色相,调成偏红
参考技术B 建议你换一个软件,ZendStudio,我用的是5.5.1版本。

在editplus里面的话,应该是你没有加入PHP文件类型,可以在Tools-Preferences-Files-Settings&syntax中加入,试试吧。

如何在 PHP 中绘制渐变矩形? [关闭]

【中文标题】如何在 PHP 中绘制渐变矩形? [关闭]【英文标题】:How to draw a gradient rectangle in PHP? [closed] 【发布时间】:2014-07-18 09:57:43 【问题描述】:

我想在 PHP 中绘制像 这样的双渐变(不同颜色)。

编辑:最终修改了答案中提供的渐变函数之一,以简单地绘制双渐变。

【问题讨论】:

【参考方案1】:

使用普通的 GD Image 函数在 PHP 中创建渐变。该函数使用 HTML 十六进制代码作为颜色值,然后将它们转换为具有 RGB 值的数组。

function image_gradientrect($img,$x,$y,$x1,$y1,$start,$end) 
   if($x > $x1 || $y > $y1) 
      return false;
   
   $s = array(
      hexdec(substr($start,0,2)),
      hexdec(substr($start,2,2)),
      hexdec(substr($start,4,2))
   );
   $e = array(
      hexdec(substr($end,0,2)),
      hexdec(substr($end,2,2)),
      hexdec(substr($end,4,2))
   );
   $steps = $y1 - $y;
   for($i = 0; $i < $steps; $i++) 
      $r = $s[0] - ((($s[0]-$e[0])/$steps)*$i);
      $g = $s[1] - ((($s[1]-$e[1])/$steps)*$i);
      $b = $s[2] - ((($s[2]-$e[2])/$steps)*$i);
      $color = imagecolorallocate($img,$r,$g,$b);
      imagefilledrectangle($img,$x,$y+$i,$x1,$y+$i+1,$color);
   
   return true;



$imgWidth = 300;
$imgHeight = 150;
$img = imagecreatetruecolor($imgWidth,$imgHeight);

image_gradientrect($img,0,0,$imgWidth,$imgHeight,'ff0000','0000ff');
/* Show In Browser as Image */
header('Content-Type: image/png');
imagepng($img);

/* Save as a File */
imagepng($img,'save.png');

/* Some Cleanup */
imagedestroy($img);

只需更改上面代码中的高度和宽度以及颜色,它就会生成矩形图像。

【讨论】:

【参考方案2】:

此来源参考。到 Christoper Kramer 的 PHP 文档页面。 尝试一下。 PHP 中没有“内置”函数来绘制它。

function gradient($w=100, $h=100, $c=array('#FFFFFF','#FF0000','#00FF00','#0000FF'), $hex=true) 

    /*
    Generates a gradient image

    Author: Christopher Kramer

    Parameters:
    w: width in px
    h: height in px
    c: color-array with 4 elements:
        $c[0]:   top left color
        $c[1]:   top right color
        $c[2]:   bottom left color
        $c[3]:   bottom right color

    if $hex is true (default), colors are hex-strings like '#FFFFFF' (NOT '#FFF')
    if $hex is false, a color is an array of 3 elements which are the rgb-values, e.g.:
    $c[0]=array(0,255,255);

    */

    $im=imagecreatetruecolor($w,$h);

    if($hex)   // convert hex-values to rgb
        for($i=0;$i<=3;$i++) 
            $c[$i]=hex2rgb($c[$i]);
        
    

    $rgb=$c[0]; // start with top left color
    for($x=0;$x<=$w;$x++)  // loop columns
        for($y=0;$y<=$h;$y++)  // loop rows
            // set pixel color 
            $col=imagecolorallocate($im,$rgb[0],$rgb[1],$rgb[2]);
            imagesetpixel($im,$x-1,$y-1,$col);
            // calculate new color  
            for($i=0;$i<=2;$i++) 
                $rgb[$i]=
                    $c[0][$i]*(($w-$x)*($h-$y)/($w*$h)) +
                    $c[1][$i]*($x     *($h-$y)/($w*$h)) +
                    $c[2][$i]*(($w-$x)*$y     /($w*$h)) +
                    $c[3][$i]*($x     *$y     /($w*$h));
            
        
    
    return $im;


function hex2rgb($hex)

    $rgb[0]=hexdec(substr($hex,1,2));
    $rgb[1]=hexdec(substr($hex,3,2));
    $rgb[2]=hexdec(substr($hex,5,2));
    return($rgb);


// usage example

$image=gradient(300, 300, array('#000000', '#FFFFFF', '#FF0000', '#0000FF'));

header('Content-type: image/png');
imagepng($image);
imagedestroy($image);

【讨论】:

【参考方案3】:

如果我理解正确,您想在网页上绘制渐变。 PHP 是一个服务器端脚本,与 Presetation 无关。所以 HTML 和 JS 可以帮助你。创建一个画布,然后

HTML

<canvas id="myCanvas"   style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>

Javascript

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");

var grd=ctx.createLinearGradient(0,0,170,0);
grd.addColorStop(0,"black");
grd.addColorStop(1,"white");

ctx.fillStyle=grd;
ctx.fillRect(20,20,150,100);

【讨论】:

谢谢,但我真的很想用 PHP 绘制图像。【参考方案4】:
bool imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

【讨论】:

这几乎不会绘制渐变。

以上是关于php的简单颜色问题的主要内容,如果未能解决你的问题,请参考以下文章

PHP:将动态上传的图像转换为特定颜色(动态颜色)

PHP/Ajax 简单聊天 - 将管理员用户名颜色设置为红色

如何使用 PHP 制作更轻的颜色版本?

PHP:根据 $value 更改文本的颜色

如何在 Geany 中为 PHP 范围设置与 HTML 范围不同的背景颜色?

php使用GD库合并简单图片并变动部分颜色