首页 > 后端开发 > 正文

PHP框架构成色彩图片 php获取图片分辨率 颜色模式函数

2023-10-07 07:38:34 | 我爱编程网

后端开发是很多朋友有关注的类型,那么PHP框架构成色彩图片 php获取图片分辨率 颜色模式函数,我爱编程网为大家带来了相关文章,希望给大家提供参考。

PHP框架构成色彩图片 php获取图片分辨率 颜色模式函数

php如何生成加粗或者斜体的文字样式图片

  1. 加粗或者斜体的文字可以用php的函数控制.我想你是想生成验证码图片是吗?

  2. 如果是想生成验证么图片有几个函数可以考虑

    imagecreate($length,$height)创建图片.参数是图片的宽度和高度

    imagecolorallocate($image,$r,$g,$b)设置背景色,r b g就是图片的三色rgb参数.这个可以由传入0-255的随机数决定随机的背景色.还可以生成字体色

    imagettftext($_image,$fontSize, mt_rand(-40, 70), $codeNX,$fontSize*1.5,$_color, $ttf, $code[$i]);写入随机的文字,这里要一个字一个字写.所以这个函数要循环调用.

    百度了一下 找到了一个类...如下

  3. <?php
    /**
     * 安全验证码
     * 
     * 安全的验证码要:验证码文字扭曲、旋转,使用不同字体,添加干扰码。
     * 如果用中文做验证码(我这里不是哦,有兴趣你来改成用中文的),安全度会更好些,但验证码扭曲和旋转是王道,用了字体也算是已经给字体扭曲了,我就不再去给他添一只扭曲的足了。
     * 可配置的属性都是一些简单直观的变量,我就不用弄一堆的setter/getter了
     *
     * @author 流水孟春 <cmpan(at)qq.com>
     * @copyright NEW BSD
     * @link _Security_Secoder
     * @link 
     */
    class YL_Security_Secoder {
    /**
     * 验证码的session的下标
     * 
     * @var string
     */
    public static $seKey = 'sid.sekey.ylans.cn';
    public static $expire = 3000;     // 验证码过期时间(s)
    /**
     * 验证码中使用的字符,01IO容易混淆,建议不用
     *
     * @var string
     */
    public static $codeSet = '346789ABCDEFGHJKLMNPQRTUVWXY';
    public static $fontSize = 25;     // 验证码字体大小(px)
    public static $useCurve = true;   // 是否画混淆曲线
    public static $useNoise = true;   // 是否添加杂点
    public static $imageH = 0;        // 验证码图片宽
    public static $imageL = 0;        // 验证码图片长
    public static $length = 4;        // 验证码位数
    public static $bg = array(243, 251, 254);  // 背景

    protected static $_image = null;     // 验证码图片实例
    protected static $_color = null;     // 验证码字体颜色

    /**
     * 输出验证码并把验证码的值保存的session中
     * 验证码保存到session的格式为: $_SESSION[self::$seKey] = array('code' => '验证码值', 'time' => '验证码创建时间');
     */
    public static function entry() {
    // 图片宽(px)
    self::$imageL || self::$imageL = self::$length * self::$fontSize * 1.5 + self::$fontSize*1.5; 
    // 图片高(px)
    self::$imageH || self::$imageH = self::$fontSize * 2;
    // 建立一幅 self::$imageL x self::$imageH 的图像
    self::$_image = imagecreate(self::$imageL, self::$imageH); 
    // 设置背景      
    imagecolorallocate(self::$_image, self::$bg[0], self::$bg[1], self::$bg[2]); 
    // 验证码字体随机颜色
    self::$_color = imagecolorallocate(self::$_image, mt_rand(1,120), mt_rand(1,120), mt_rand(1,120));
    // 验证码使用随机字体 
    $ttf = dirname(__FILE__) . '/ttfs/' . mt_rand(1, 20) . '.ttf';  

    if (self::$useNoise) {
    // 绘杂点
    self::_writeNoise();

    if (self::$useCurve) {
    // 绘干扰线
    self::_writeCurve();
    }

    // 绘验证码
    $code = array(); // 验证码
    $codeNX = 0; // 验证码第N个字符的左边距
    for ($i = 0; $i<self::$length; $i++) {
    $code[$i] = self::$codeSet[mt_rand(0, 27)];
    $codeNX += mt_rand(self::$fontSize*1.2, self::$fontSize*1.6);
    // 写一个验证码字符
    imagettftext(self::$_image, self::$fontSize, mt_rand(-40, 70), $codeNX, self::$fontSize*1.5, self::$_color, $ttf, $code[$i]);
    }

    // 保存验证码
    isset($_SESSION) || session_start();
    $_SESSION[self::$seKey]['code'] = join('', $code); // 把校验码保存到session
    $_SESSION[self::$seKey]['time'] = time();  // 验证码创建时间

    header('Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0', false);
    header('Pragma: no-cache');
    header("content-type: image/png");

    // 输出图像
    imagepng(self::$_image); 
    imagedestroy(self::$_image);
    }

    /** 
     * 画一条由两条连在一起构成的随机正弦函数曲线作干扰线(你可以改成更帅的曲线函数) 
         *      
         *      高中的数学公式咋都忘了涅,写出来
     * 正弦型函数解析式:y=Asin(ωx+φ)+b
     *      各常数值对函数图像的影响:
     *        A:决定峰值(即纵向拉伸压缩的倍数)
     *        b:表示波形在Y轴的位置关系或纵向移动距离(上加下减)
     *        φ:决定波形与X轴位置关系或横向移动距离(左加右减)
     *        ω:决定周期(最小正周期T=2π/∣ω∣)
     *
     */
        protected static function _writeCurve() {
    $A = mt_rand(1, self::$imageH/2);                  // 振幅
    $b = mt_rand(-self::$imageH/4, self::$imageH/4);   // Y轴方向偏移量
    $f = mt_rand(-self::$imageH/4, self::$imageH/4);   // X轴方向偏移量
    $T = mt_rand(self::$imageH*1.5, self::$imageL*2);  // 周期
    $w = (2* M_PI)/$T;

    $px1 = 0;  // 曲线横坐标起始位置
    $px2 = mt_rand(self::$imageL/2, self::$imageL * 0.667);  // 曲线横坐标结束位置      
    for ($px=$px1; $px<=$px2; $px=$px+ 0.9) {
    if ($w!=0) {
    $py = $A * sin($w*$px + $f)+ $b + self::$imageH/2;  // y = Asin(ωx+φ) + b
    $i = (int) ((self::$fontSize - 6)/4);
    while ($i > 0) {
        imagesetpixel(self::$_image, $px + $i, $py + $i, self::$_color);  // 这里画像素点比imagettftext和imagestring性能要好很多     
        $i--;
    }
    }
    }

    $A = mt_rand(1, self::$imageH/2);                  // 振幅
    $f = mt_rand(-self::$imageH/4, self::$imageH/4);   // X轴方向偏移量
    $T = mt_rand(self::$imageH*1.5, self::$imageL*2);  // 周期
    $w = (2* M_PI)/$T;
    $b = $py - $A * sin($w*$px + $f) - self::$imageH/2;
    $px1 = $px2;
    $px2 = self::$imageL;
    for ($px=$px1; $px<=$px2; $px=$px+ 0.9) {
    if ($w!=0) {
    $py = $A * sin($w*$px + $f)+ $b + self::$imageH/2;  // y = Asin(ωx+φ) + b
    $i = (int) ((self::$fontSize - 8)/4);
    while ($i > 0) {
        imagesetpixel(self::$_image, $px + $i, $py + $i, self::$_color);  // 这里(while)循环画像素点比imagettftext和imagestring用字体大小一次画出(不用这while循环)性能要好很多
        $i--;
    }
    }
    }
    }

    /**
     * 画杂点
     * 往图片上写不同颜色的字母或数字
     */
    protected static function _writeNoise() {
    for($i = 0; $i < 10; $i++){
    //杂点颜色
        $noiseColor = imagecolorallocate(
                          self::$_image, 
                          mt_rand(150,225), 
                          mt_rand(150,225), 
                          mt_rand(150,225)
                      );
    for($j = 0; $j < 5; $j++) {
    // 绘杂点
        imagestring(
            self::$_image,
            5, 
            mt_rand(-10, self::$imageL), 
            mt_rand(-10, self::$imageH), 
            self::$codeSet[mt_rand(0, 27)], // 杂点文本为随机的字母或数字
            $noiseColor
        );
    }
    }
    }

    /**
     * 验证验证码是否正确
     *
     * @param string $code 用户验证码
     * @return bool 用户验证码是否正确
     */
    public static function check($code) {
    isset($_SESSION) || session_start();
    // 验证码不能为空
    if(empty($code) || empty($_SESSION[self::$seKey])) {
    return false;
    }
    // session 过期
    if(time() - $_SESSION[self::$seKey]['time'] > self::$expire) {
    unset($_SESSION[self::$seKey]);
    return false;
    }

    if($code == $_SESSION[self::$seKey]['code']) {
    return true;
    }

    return false;
    }
    }


    // useage
    /*
    YL_Security_Secoder::$useNoise = false;  // 要更安全的话改成true
    YL_Security_Secoder::$useCurve = true;
    YL_Security_Secoder::entry();
    */

    /*
    // 验证验证码
    if (!YL_Security_Secoder::check(@$_POST['secode'])) {
    print 'error secode';
    }
    */
  4. 这是效果

PHP框架构成色彩图片 php获取图片分辨率 颜色模式函数

单身达人必备,小型冰箱价格图片欣赏

导语:冰箱是我们生活中必不可少的储存食物的电器,夏季食物易变质,冰箱可以延长食物的保质期,市面上的冰箱品牌和大小各不相同,有单门冰箱、双门冰箱、三门冰箱。消费者可以根据室内面积或者居住的人数选购冰箱,很多人为了工作方便在外租房子或者住在单身公寓内,一个人生活,小型冰箱就满足基本生活需要,本文就为您介绍几款小型冰箱及价格。


樱花(SAKURA) BCD-108 108升 小型冰箱

价格:639元

商品名称:樱花(SAKURA)BCD-108 108L双门电冰箱 拉丝银双门小冰箱 家用节能冰箱

品牌:樱花(SAKURA)

颜色:银箱门

结构:双门

制冷方式:直冷

控温方式:机械控温

日耗电量:0.35

国家能效等级:1级

总有效容积:108升

欧力 BC-48D 48升 单门冰箱

价格:399元

商品名称:欧力冰箱BC-48D

品牌:欧力

颜色:白色

箱门结构:单门

制冷方式:直冷

控温方式:机械控温

日耗电量:0.38

国家能效等级:1级

总有效容积:48升


海信(Hisense) BC-90S 90升 单门冰箱

价格:599元

商品名称:海信冰箱BC-90S

品牌:海信

颜色:珍珠白色

箱门结构:单门

制冷方式:直冷

控温方式:机械控温

日耗电量:0.45

国家能效等级:1级

总有效容积:90升

美的(Midea) BC-45M 45升 单门冰箱

价格:599元

商品名称:美的冰箱冰箱BC-45M

品牌:美的

颜色:白

箱门结构:单门

制冷方式:直冷

控温方式:机械控温

日耗电量:0.42

国家能效等级:2级 我爱编程网

总有效容积:45升


富信(Fuxin) BC-17A 17升 单门冰箱

价格:389元

商品名称:富信(Fu品牌:富信(Fuxin)

箱门结构:单门

制冷方式:风冷

控温方式:机械控温

日耗电量:0.5

国家能效等级:2级

总有效容积:17升

奥马(homa) BC-46A 46升 单门冰箱

价格:487

商品名称:奥马冰箱BC-46A

品牌:奥马

颜色:珍珠白色

箱门结构:单门

制冷方式:直冷

控温方式:机械控温

日耗电量:0.33

国家能效等级:1级

总有效容积:46升

美菱(MeiLing) BC-50S 50升 单门冰箱

价格:628元

商品名称:美菱冰箱BC-50S

品牌:美菱

颜色:白色

箱门结构:单门

制冷方式:直冷

控温方式:机械控温

日耗电量:0.29

国家能效等级:1级

总有效容积:50升


很多人都体会过刚工作时一个人租房子居住在单身公寓的日子,一个人生活,做菜少了不能享受生活,菜做多了多了又浪费,夏天到了,食物更是容易变质。因此,需要购买冰箱来储存食物,但是一个人居住并不需要使用太大的冰箱,小型的冰箱就可以满足基本的生活需要,本文为您介绍了几款小型冰箱及价格,希望对您有借鉴意义。

土巴兔在线免费为大家提供“各家装修报价、1-4家本地装修公司、3套装修设计方案”,还有装修避坑攻略!点击此链接:【 】,就能免费领取哦~

PHP框架构成色彩图片 php获取图片分辨率 颜色模式函数

php获取图片分辨率 颜色模式函数

$img_info = getimagesize('a.jpg');
print_r($img_info);

索引 0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。

channels 和 bits。channels 对于 RGB 图像其值为 3,对于 CMYK 图像其值为 4。bits 是每种颜色的位数。

以上就是我爱编程网为大家带来的PHP框架构成色彩图片 php获取图片分辨率 颜色模式函数,希望能帮助到大家,了解更多相关信息,敬请关注我爱编程网。
与“PHP框架构成色彩图片 php获取图片分辨率 颜色模式函数”相关推荐
探月编程怎么用代码缩小图片?
探月编程怎么用代码缩小图片?

探月编程怎么用代码缩小图片?在Python中,你可以使用Pillow库来缩小图片。以下是一个简单的例子:python复制代码fromPILimportImagedefresize_image(input_image_path,output_image_path,size):original_image=Image.open(input_image_path)width,

2023-12-12 08:10:46
python自动生成插画-python怎么根据数据生成图像
python自动生成插画-python怎么根据数据生成图像

python自动生成插画-python怎么根据数据生成图像如何用python画五一海报要用Python画五一海报,需要用到Python的绘图库,比如matplotlib、Pillow等。以下是一个简单的例子,演示如何使用Python和Pillow库来制作五一海报:fromPILimportImage,ImageDraw,ImageFont#创建一个空白的画布,大小为800x

2023-12-13 15:46:29
python xlwt excel 单元格边框,如何才能有如下的加黑边框
python xlwt excel 单元格边框,如何才能有如下的加黑边框

pythonxlwtexcel单元格边框,如何才能有如下的加黑边框borders = xlwt.Borders()borders.left = 1borders.right = 1borders.top = 1borders.bottom = 1borders.bottom_colour=0x3A    style = xlwt.XFStyle()style.borders = border

2023-12-12 18:09:59
Python培训机构哪个好?
Python培训机构哪个好?

Python培训机构哪家比较好?相信在IT领域发展的同学对Java很熟悉。Python编程语言排行中一直处于领先地位,这可以直接体现Python的重要。因此很多同学准备参加Python培训机构系统学习。那么,Python培训机构哪家比较好?下面我们介绍一下。随着Python普及,越来越多的人了解py,企业也会对求职者提出更高的要求,他们想招聘一些能马上开始工作的人,所以往往会招聘一些

2023-12-12 18:49:43
如何用Python编写一个素数环?
如何用Python编写一个素数环?

如何用Python编写一个素数环?代码:n=int(input("请输入最大数n:"))lists=[[1]]#多个素数环surplusnum=list(range(1,n+1))#剩余的数defsumisprime(x,y):#x与y之和是否是素数isprime=True#是否是素数s=x+y#和foriinrange(2,int(s**0.5)+1):

2023-12-11 17:02:40
python种如何输出指定位小数
python种如何输出指定位小数

python种如何输出指定位小数方法一:round(X,N)该方法并不严格有效,当X小数位数n&lt;N时,仅能够输出n位小数。方法二:print('%.Nf'%X)或者print("%.Nf"%X)注意该方法有两个“%”,没有“,”。方法三:print(format(X,'.Nf')或者print(format(X,".Nf")注意该方法没有"%",但有“,”。更多

2023-12-12 23:54:15
如何使用Python计算两个数字的乘积或平方?
如何使用Python计算两个数字的乘积或平方?

怎样用python编出乘法算式?print('\n'.join([''.join(['%sx%s=%-2s'%(y,x,x*y)foryinrange(1,x+1)])forxinrange(1,10)]))Python写出输入二个数,求这二个数的加、减、乘、除、取余、取整、幂的值并输?当你想要让用户输入两个数字,并计算它们的加法、减法、乘法、除法、取余、取整、幂运算的结果,可以

2023-12-12 13:00:59