> 백엔드 개발 > PHP 튜토리얼 > ico 파일의 PHP 온라인 생성을 위한 로고 온라인 생성 코드

ico 파일의 PHP 온라인 생성을 위한 로고 온라인 생성 코드

WBOY
풀어 주다: 2016-07-29 08:37:07
원래의
2442명이 탐색했습니다.

index.php

코드 복사 코드는 다음과 같습니다.


$output = "";
if(isset($_GET['action'])&&$_GET['action'] == 'make'){
if(isset($_FILES['upimage']['tmp_name']) && $_FILES['upimage']['tmp_name'] && is_uploaded_file($_FILES['upimage']['tmp_name'])){
if($_FILES['upimage']['type']>210000){
echo "업로드한 파일의 크기가 제한을 초과하여 200K를 초과할 수 없습니다."
exit();
}
$ FILEEXT = Array ("Image/PJPEG", "Image/GIF", "Image/X-PNG") ], $ FILEEXT)) {
Echo "업로드한 파일 형식 올바르지 않음은 JPG, GIF, PNG만 지원합니다.";
종료 ();
}
if ($ im = @imageCreateFrompng ( $_FILES['upimage']['tmp_name']) 또는 $im = @imagecreatefromgif($_FILES['upimage']['tmp_name']) 또는 $im = @imagecreatefromjpeg($_FILES['upimage']['tmp_name '])){
            $imginfo = @getimagesize($_FILES[ '업이미지']['tmp_name']);";
           }
            스위치($_POST['size']){
              case 1;
                $resize_im = @imagecreatetruecolor(16,1 6)
                  $size = 16; >                 break;
               사례 2;  $size = 32;
                 break
              사례 3; (48,48);
                  $size = 48;
                break;
             기본값; $resize_im = @imagecreatetruecolor(32,32);
                  $size = 32                 break ;
            }
            imagecopyresampled($resize_im,$im,0,0,0,0,$size,$size,$imginfo[0],$imginfo[1])
           include "phpthumb. ico.php";
           $icon = new phpthumb_ico();
           $gd_image_array = array($resize_im);
           $icon_data = $icon->GD2ICOstring($gd_image_ 배열);
            $filename = "temp/".date("Ymdhis").rand(1,1000).".ico";
           if(file_put_contents($filename, $icon_data)){
              $output = "生成成功!请点右键->另存为 保存到本地
点击下载";
            }
        }else{
            에코 "生成错误请重试!";
        }
    }    
}
?>


ICO图标在线转换



ICO图标在线转换




    
        
    
    
        
    
    
        
    
    
        
    
        if($output){
        echo "";
    }
    ?>
    
        

🎜>
phpthumb.ico.php


코드 복사


코드는 다음과 같습니다.


//////////////////////////////////// ///////////////////////
///  phpThumb() 작성자: James Heinrich    //
//        http://phpthumb.sourceforge.net에서 사용 가능     ///
///////////////////////// ////////////////////////////////
///                                              //
// phpthumb .ico.php - .ICO 출력 형식 기능          //
//                                             ///
////////////////// ////////// ////////////////////////////////
클래스 phpthumb_ico {
    함수 phpthumb_ico() {
        true를 반환합니다.
    }
    함수 GD2ICOstring(&$gd_image_array) {
        foreach($gd_image_array as $key => $gd_image) {
            $ImageWidths[$key]  = ImageSX($ gd_image);
            $ImageHeights[$key] = ImageSY($gd_image);
           $bpp[$key]          = ImageIsTrueColor($gd_image) ? 32 : 24;
            $totalcolors[$key]  = ImageColorsTotal($gd_image);
           $icXOR[$key]= '';
            for ($y = $ImageHeights[$key] - 1; $y >= 0;  $y--) {
               for ($x = 0; $x < $ImageWidths[$key]; $x ) {
                 $argb = $this->GetPixelColor ($gd_image, $x, $y);
                   $a = round(255 * ((127 - $argb['alpha']) / 127));
                  $r = $argb['red' ];
                   $g = $argb['green'];
                  $b = $argb['blue'];
                   if ($bpp[$key] == 32) {
                       $ icXOR[$key] .= chr($b).chr($g).chr($r).chr($a);
                   } elseif ($bpp[$key] == 24) {
                       $icXOR[$key] .= chr($b).chr($g).chr($r);
                   }
                   if ($a < 128) {
                     @$icANDmask[$key][$y] .= '1';
                   } else {
                       @$icANDmask[$key][$ y] .='0';
                   }
               }
              // 마스크 비트는 스캔라인별로 32비트로 정렬됩니다
                동안 (strlen($icANDmask[$key][$y]) % 32 ) {
                   $icANDmask[$key][$y] .= '0';
               }
            }
            $icAND[$key] = ' ';
            foreach($icANDmask[ $key] $y =>  $scanlinemaskbits) {
              for ($i = 0; $i < strlen($scanlinemaskbits); $i  = 8) {
                  $icAND[$key] . = chr(bindec(str_pad(substr($scanlinemaskbits, $i, 8), 8, '0', STR_PAD_LEFT)));
               }
            }
        }
        foreach ($gd_image_array as $key => $gd_image) {
           $biSizeImage = $ImageWidths[$key] * $ImageHeights[$key] * ($bpp[$key] / 8);
            // BITMAPINFOHEADER - 40바이트
            $BitmapInfoHeader[$key]  = '';
           $BitmapInfoHeader[$key] .= "x28x00x00x00";                              // DWORD  biSize;
            $BitmapInfoHeader[$key] .= $this->LittleEndian2String($ImageWidths[$key], 4);      // LONG   biWidth;
            // biHeight 멤버는 결합된
           // XOR 및 AND 마스크의 높이를 지정합니다.
           $BitmapInfoHeader[$key] .= $this ->LittleEndian2String($ImageHeights[ $key] * 2, 4); // LONG   biHeight;
            $BitmapInfoHeader[$key] .= "x01x00";                                      // 워드   biPlanes;
               $BitmapInfoHeader[$key] .= chr($bpp[$key])."x00";                          // wBitCount;
            $BitmapInfoHeader[$key] .= "x00x00x00x00";                              // DWORD  biCompression;
            $BitmapInfoHeader[$key] .= $this->LittleEndian2String($biSizeImage, 4);            // DWORD  biSizeImage;
            $BitmapInfoHeader[$key] .= "x00x00x00x00";                              // 길게   biXPelsPerMeter;
            $BitmapInfoHeader[$key] .= "x00x00x00x00";                              // LONG   biYPelsPerMeter;
            $BitmapInfoHeader[$key] .= "x00x00x00x00";                              // DWORD  biClrUsed;
            $BitmapInfoHeader[$key] .= "x00x00x00x00";                              // DWORD  biClrImportant;
        }
        $icondata  = "\x00\x00";                                      // idReserved;   // Reserved (must be 0)
        $icondata .= "\x01\x00";                                      // idType;       // Resource Type (1 for icons)
        $icondata .= $this->LittleEndian2String(count($gd_image_array), 2);  // idCount;      // How many images?
        $dwImageOffset = 6 + (count($gd_image_array) * 16);
        foreach ($gd_image_array as $key => $gd_image) {
            // ICONDIRENTRY   idEntries[1]; // An entry for each image (idCount of 'em)
            $icondata .= chr($ImageWidths[$key]);                     // bWidth;          // Width, in pixels, of the image
            $icondata .= chr($ImageHeights[$key]);                    // bHeight;         // Height, in pixels, of the image
            $icondata .= chr($totalcolors[$key]);                     // bColorCount;     // Number of colors in image (0 if >=8bpp)
            $icondata .= "\x00";                                      // bReserved;       // Reserved ( must be 0)
            $icondata .= "\x01\x00";                                  // wPlanes;         // Color Planes
            $icondata .= chr($bpp[$key])."\x00";                      // wBitCount;       // Bits per pixel
            $dwBytesInRes = 40 + strlen($icXOR[$key]) + strlen($icAND[$key]);
            $icondata .= $this->LittleEndian2String($dwBytesInRes, 4);       // dwBytesInRes;    // How many bytes in this resource?
            $icondata .= $this->LittleEndian2String($dwImageOffset, 4);      // dwImageOffset;   // Where in the file is this image?
            $dwImageOffset += strlen($BitmapInfoHeader[$key]);
            $dwImageOffset += strlen($icXOR[$key]);
            $ dwimageOffset = strlen ($ icand [$ key]);
}
foreach ($ gd_image_array as $ key = & gt; $ gd_image) {
$ icondata. = $ bitmapinfoheader [$ key];
            $icondata .= $icXOR[$key];
            $icondata .= $icAND[$key];
        }
        return $icondata;
    }
    기능 Li ttleEndian2String($번호, $minbytes=1) {
        $intstring = '';
        while ($number > 0) {
           $intstring = $intstring.chr($number & 255);
           $number > ;>= 8;
        }
        return str_pad($intstring, $minbytes, "x00", STR_PAD_RIGHT);
    }
    함수 GetPixelColor(&$img, $x, $y) {
        if (!is_resource($img)) {
            false 반환;
        }
        @ImageColorsForIndex($img, @ImageColorAt($img, $x, $y));
}
}
?>

以上就介绍了logo는 php에서 php에서 ico文件的代码, 包括了logo에서 线生成方face 内容, 希望对PHP教程有兴趣的朋友有所帮助.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
请上传你要转换的图片
支持格式 png,jpg,gif
目标尺寸:
        
        
        
        
".$output."
Powered by 非常爱漫