php读取远程图片到本地

 更新时间:2016年11月25日 16:02  点击:1434
php读取远程图片到本地

$message   //文章内容

    //正则(这个还不是)

    $reg = "/<img[^>]*src="(http://(.+)/(.+).(jpg|gif|bmp|bnp))"/isU";

    //把抠出来的 img 地址存放到 $img_array 变量中

    preg_match_all($reg, $message, $img_array, PREG_PATTERN_ORDER);

    //过滤重复的图片

    $img_array = array_unique($img_array[1]);


复制代码第二步. 把$img_array 数组循环一下. 做图片保存和文章位置替换 foreach ($img_array as $img){

        //判断是否是自己网站上的 图片

        if('xxx.com' != get_domain($img)){// 如果这个图片不是自己服务器上的

            //读取图片文件

            $Gimg = new GetImage();

            $Gimg->source = $img;

            $Gimg->save_to = './data/temp/';

            $FILE =  $Gimg->download(); //图片移动到本地

            //保存到相册 得到图片保存的位置

            $img_path = pic_save($FILE,0,'');

            //文本路径替换

            $message = str_replace($img, $img_path, $message);

           

        }

    }

 

    ....这时候 $message 里面已经图片已经替换为自己服务器本地的地址,并且图片也保存到自己的服务器上.


复制代码//下面一个函数 和 类是从网络上找的.

 

//从url中获得域名

function get_domain($url){

    $pattern = "/[w-]+.(com|net|org|gov|cc|biz|info|cn)(.(cn|hk))*/";

    preg_match($pattern, $url, $matches);

    if(count($matches) > 0) {

        return $matches[0];

    }else{

        $rs = parse_url($url);

        $main_url = $rs["host"];

        if(!strcmp(long2ip(sprintf("%u",ip2long($main_url))),$main_url)) {

            return $main_url;

        }else{

            $arr = explode(".",$main_url);

            $count=count($arr);

            $endArr = array("com","net","org","3322");//com.cn  net.cn 等情况

            if (in_array($arr[$count-2],$endArr)){

                $domain = $arr[$count-3].".".$arr[$count-2].".".$arr[$count-1];

            }else{

                $domain =  $arr[$count-2].".".$arr[$count-1];

            }

            return $domain;

        }// end if(!strcmp...)

    }// end if(count...)

}// end function

 

// 从远程吧图片载到服务器本地 的 类

class GetImage {

 

var $source;

var $save_to;

var $quality;

 

function download($method = 'curl') {

    $info = @GetImageSize($this->source);

    $mime = $info['mime'];

   

// What sort of image?

    $type = substr(strrchr($mime, '/'), 1);

    switch ($type){

        case 'jpeg':

            $image_create_func = 'ImageCreateFromJPEG';

            $image_save_func = 'ImageJPEG';

            $new_image_ext = 'jpg';

       

            // Best Quality: 100

            $quality = isSet($this->quality) ? $this->quality : 100;

            break;

       

        case 'png':

            $image_create_func = 'ImageCreateFromPNG';

            $image_save_func = 'ImagePNG';

            $new_image_ext = 'png';

       

            // Compression Level: from 0  (no compression) to 9

            $quality = isSet($this->quality) ? $this->quality : 0;

            break;

       

        case 'bmp':

            $image_create_func = 'ImageCreateFromBMP';

            $image_save_func = 'ImageBMP';

            $new_image_ext = 'bmp';

            break;

       

        case 'gif':

            $image_create_func = 'ImageCreateFromGIF';

            $image_save_func = 'ImageGIF';

            $new_image_ext = 'gif';

 

            break;

       

        case 'vnd.wap.wbmp':

            $image_create_func = 'ImageCreateFromWBMP';

            $image_save_func = 'ImageWBMP';

            $new_image_ext = 'bmp';

            break;

       

        case 'xbm':

            $image_create_func = 'ImageCreateFromXBM';

            $image_save_func = 'ImageXBM';

            $new_image_ext = 'xbm';

            break;

       

        default:

            $image_create_func = 'ImageCreateFromJPEG';

            $image_save_func = 'ImageJPEG';

            $new_image_ext = 'jpg';

    }

   

    if(isSet($this->set_extension)){

        $ext = strrchr($this->source, ".");

        $strlen = strlen($ext);

        $new_name = basename(substr($this->source, 0, -$strlen)).'.'.$new_image_ext;

    }else{

        $new_name = basename($this->source);

    }

   

    $save_to = $this->save_to."/blog_insert_temp_".time().mt_rand(1,99).".".$new_image_ext;

    //输出对象 组成跟$_FILE变量一样 得到后自己和平常图片上传处理一样了

    $img_info['name'] = basename($this->source);

    $img_info['type'] = $mime;

    $img_info['size'] = 1000;

    $img_info['tmp_name'] = $save_to;

    $img_info['error'] = 0;

       

    if($method == 'curl'){

        $save_image = $this->LoadImageCURL($save_to);

    }elseif($method == 'gd'){

        $img = $image_create_func($this->source);

   

            if(isSet($quality)){

               $save_image = $image_save_func($img, $save_to, $quality);

            }else{

               $save_image = $image_save_func($img, $save_to);

            }

          

    }

         return $img_info;

    }

   

    function LoadImageCURL($save_to){

        $ch = curl_init($this->source);

        $fp = fopen($save_to, "wb");

       

        // set URL and other appropriate options

        $options = array(CURLOPT_FILE => $fp,

                         CURLOPT_HEADER => 0,

                         CURLOPT_FOLLOWLOCATION => 1,

                         CURLOPT_TIMEOUT => 60); // 1 minute timeout (should be enough)

       

        curl_setopt_array($ch, $options);

       

        curl_exec($ch);

        curl_close($ch);

        fclose($fp);

 

    }

}

php+js实现省市[select下拉列表]二级关联菜单效果


<head>
<meta http-equiv="Content-Type" ontent="text/html; charset=gb2312" />
<title>表单元素[select下拉列表]制作二级联动菜单</title>
<?php
$link = mysql_connect('localhost','root','root') or die( mysql_error());
  mysql_select_db('cshouse',$link) or die('db error');
  mysql_query("set Names'gbk'");
  /*$sql = "Select * from zgy_classplace where upid=0 order by id asc";
  $result = mysql_query( $sql );
  $i =1;
  $count = mysql_num_rows( $result );
  $b=',';
  while( $rs = mysql_fetch_array( $result  ) )
  {
   if( $i==$count ){ $b =''; }
   echo " new Array("$rs[id]","$rs[cntitle]")$b nt";
   $i++;
  }
  echo ");";
  */
  
  ?>
<script language="javascript">
//下面函数是演示二,联动菜单的处理代码
function makeplace_a(x){
    var form2=document.wane_search.one.options.length;//这句解释同上
    var wane_searchl=new Array(form2)//新建一个数组,项数为第一个下拉列表的项数
    for(i=0;i<form2;i++)//循环第一个下拉列表的项数那么多次
        wane_searchl[i]=new Array();//子循环
        //下面是给每个循环赋值 
    var place_a=document.wane_search.place_a;//方便引用

 <?php
  $sql = "Select * from zgy_classplace where upid=0 ";
  $result = mysql_query( $sql );
  $j =1;
  while( $rs = mysql_fetch_array( $result ) )
  {
   
   $sql = mysql_query("Select * from zgy_classplace where upid='$rs[id]' and upid<>0") ;
   $i =0;
  
   while( $p =mysql_fetch_array( $sql ) )   {
    
     echo "wane_searchl[$j][$i] = new Option("$p[cntitle]","$p[id]"); nt";
     $i++;
     
    
   }
   $j++;
  }
 ?>
    for(m=place_a.options.length-1;m>0;m--)
    //这个要看清楚,因为要重新填充下拉列表的话必须先清除里面原有的项,清除和增加当然是有区别的了,所以用递减
        place_a.options[m]=null;//将该项设置为空,也就等于清除了
    for(j=0;j<wane_searchl[x].length;j++){//这个循环是填充下拉列表
        place_a.options[j]=new Option(wane_searchl[x][j].text,wane_searchl[x][j].value)
        //注意上面这据,列表的当前项等于 新项(数组对象的x,j项的文本为文本,)
    }
    place_a.options[0].selected=true;//设置被选中的初始值
}
</script>
</head>
<body>
<form id="form20" name="wane_search" method="post" action="">
  <select name="one" size="1" onchange="makeplace_a(options.selectedIndex)">
  <option value="">---请选择省份---</option>
  <?php
    $sql_pr = "Select * from zgy_classplace where upid=0";
  $result_pr = mysql_query( $sql_pr );
  while( $rs_pr = mysql_fetch_array( $result_pr ) )
  {
   echo "<option value=$rs_pr[id]>$rs_pr[cntitle]</option> nt";
  }
  ?>  
  </select>
  <select name="place_a">
  <option value="">---请选择城市---</option>
   
  </select>
  <label>
  <input type="submit" name="Submit" value="提交">
  </label>
</form>
<?php
if($_POST)
{
 print_r($_POST);
}

?>
</body>
</html>

 

php 经典的分页函数


/**
*分页函数
*
*
*/
function multi($total, $perPage, $curPage, $pageUrl, $maxPages = 0, $page = 10, $autoGoTo = TRUE, $simple = FALSE) {
 $multiPage = '';
 $pageUrl .= strpos($pageUrl, '?') ? '&amp;' : '?';
 $realPages = 1;
 if($total > $perPage) {
  $offset = 2;

  $realPages = @ceil($total / $perPage);
  $pages = $maxPages && $maxPages < $realPages ? $maxPages : $realPages;

  if($page > $pages) {
   $from = 1;
   $to = $pages;
  } else {
   $from = $curPage - $offset;
   $to = $from + $page - 1;
   if($from < 1) {
    $to = $curPage + 1 - $from;
    $from = 1;
    if($to - $from < $page) {
     $to = $page;
    }
   } elseif ($to > $pages) {
    $from = $pages - $page + 1;
    $to = $pages;
   }
  }

  $multiPage = ($curPage - $offset > 1 && $pages > $page ? '<a href="'.$pageUrl.'page=1" class="first"'.$ajaxtarget.'>1 ...</a>' : '').
   ($curPage > 1 && !$simple ? '<a href="'.$pageUrl.'page='.($curPage - 1).'" class="prev"'.$ajaxtarget.'>&lsaquo;&lsaquo;</a>' : '');
  for($i = $from; $i <= $to; $i++) {
   $multiPage .= $i == $curPage ? '<strong>'.$i.'</strong>' :
    '<a href="'.$pageUrl.'page='.$i.($ajaxtarget && $i == $pages && $autoGoTo ? '#' : '').'"'.$ajaxtarget.'>'.$i.'</a>';
  }

  $multiPage .= ($curPage < $pages && !$simple ? '<a href="'.$pageUrl.'page='.($curPage + 1).'" class="next"'.$ajaxtarget.'>&rsaquo;&rsaquo;</a>' : '').
   ($to < $pages ? '<a href="'.$pageUrl.'page='.$pages.'" class="last"'.$ajaxtarget.'>... '.$realPages.'</a>' : '').
   (!$simple && $pages > $page && !$ajaxtarget ? '<kbd><input type="text" name="custompage" size="3" onkeydown="if(event.keyCode==13) {window.location=''.$pageUrl.'page='+this.value; return false;}" /></kbd>' : '');

  $multiPage = $multiPage ? '<div class="pages">'.(!$simple ? '<em>&nbsp;'.$total.'&nbsp;</em>' : '').$multiPage.'</div>' : '';
 }
 $maxpage = $realPages;
 return $multiPage;
}

此函数只要传参数就可以有漂亮的分页效果哦,并且支持select下拉设置调转功能

php 根据IP显示地区代码


<?php
define('IPDATA_MINI', PHPCMS_ROOT.'include/ipdata/mini.Dat');
define('IPDATA_FULL', PHPCMS_ROOT.'include/ipdata/QQWry.Dat');

class ip_area
{
 var $fp = NULL;
 var $func;
 var $offset;
 var $index;

 function ip_area()
 {
  if(@file_exists(IPDATA_MINI))
  {
   $this->func = 'data_mini';
   $this->fp = @fopen(IPDATA_MINI, 'rb');
   $this->offset = unpack('Nlen', fread($this->fp, 4));
   $this->index  = fread($this->fp, $this->offset['len'] - 4);
  }
  elseif(@file_exists(IPDATA_FULL))
  {
   $this->func = 'data_full';
   $this->fp = @fopen(IPDATA_FULL, 'rb');
  }
 }

 function get($ip)
 {
  $return = '';
  if(preg_match("/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/", $ip))
  {
   $iparray = explode('.', $ip);
   if($iparray[0] == 10 || $iparray[0] == 127 || ($iparray[0] == 192 && $iparray[1] == 168) || ($iparray[0] == 172 && ($iparray[1] >= 16 && $iparray[1] <= 31)))
   {
    $return = 'LAN';
   }
   elseif($iparray[0] > 255 || $iparray[1] > 255 || $iparray[2] > 255 || $iparray[3] > 255)
   {
    $return = 'Invalid IP Address';
   }
   else
   {
    $return = $this->func ? $this->{$this->func}($ip) : '';
    if(strpos($return, ' ') !== false) $return = substr($return, 0, strpos($return,' '));
   }
   if(strtolower(CHARSET) == 'utf-8') $return = iconv('gbk', 'utf-8', $return);
  }
  return $return;
 }

 function data_mini($ip)
 {
  $ipdot = explode('.', $ip);
  $ipdot[0] = (int)$ipdot[0];
  $ipdot[1] = (int)$ipdot[1];
  $ip    = pack('N', ip2long($ip));
  $length = $this->offset['len'] - 1028;
  $start  = unpack('Vlen', $this->index[$ipdot[0] * 4] . $this->index[$ipdot[0] * 4 + 1] . $this->index[$ipdot[0] * 4 + 2] . $this->index[$ipdot[0] * 4 + 3]);
  for($start = $start['len'] * 8 + 1024; $start < $length; $start += 8)
  {
   if($this->index{$start} . $this->index{$start + 1} . $this->index{$start + 2} . $this->index{$start + 3} >= $ip)
   {
    $this->index_offset = unpack('Vlen', $this->index{$start + 4} . $this->index{$start + 5} . $this->index{$start + 6} . "x0");
    $this->index_length = unpack('Clen', $this->index{$start + 7});
    break;
   }
  }
  fseek($this->fp, $this->offset['len'] + $this->index_offset['len'] - 1024);
  if($this->index_length['len'])
  {
   return str_replace('- ', '', fread($this->fp, $this->index_length['len']));
  }
  else
  {
   return 'Unknown';
  }
 }

 function data_full($ip)
 {
  rewind($this->fp);
  $ip = explode('.', $ip);
  $ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3];
  if(!($DataBegin = fread($this->fp, 4)) || !($DataEnd = fread($this->fp, 4)) ) return;
  @$ipbegin = implode('', unpack('L', $DataBegin));
  if($ipbegin < 0) $ipbegin += pow(2, 32);
  @$ipend = implode('', unpack('L', $DataEnd));
  if($ipend < 0) $ipend += pow(2, 32);
  $ipAllNum = ($ipend - $ipbegin) / 7 + 1;
  $BeginNum = $ip2num = $ip1num = 0;
  $ipAddr1 = $ipAddr2 = '';
  $EndNum = $ipAllNum;
  while($ip1num > $ipNum || $ip2num < $ipNum)
  {
   $Middle= intval(($EndNum + $BeginNum) / 2);
   fseek($this->fp, $ipbegin + 7 * $Middle);
   $ipData1 = fread($this->fp, 4);
   if(strlen($ipData1) < 4)
   {
    fclose($this->fp);
    return 'System Error';
   }
   $ip1num = implode('', unpack('L', $ipData1));
   if($ip1num < 0) $ip1num += pow(2, 32);
   if($ip1num > $ipNum)
   {
    $EndNum = $Middle;
    continue;
   }
   $DataSeek = fread($this->fp, 3);
   if(strlen($DataSeek) < 3)
   {
    fclose($this->fp);
    return 'System Error';
   }
   $DataSeek = implode('', unpack('L', $DataSeek.chr(0)));
   fseek($this->fp, $DataSeek);
   $ipData2 = fread($this->fp, 4);
   if(strlen($ipData2) < 4)
   {
    fclose($this->fp);
    return 'System Error';
   }
   $ip2num = implode('', unpack('L', $ipData2));
   if($ip2num < 0) $ip2num += pow(2, 32);
   if($ip2num < $ipNum)
   {
    if($Middle == $BeginNum)
    {
     fclose($this->fp);
     return 'Unknown';
    }
    $BeginNum = $Middle;
   }
  }
  $ipFlag = fread($this->fp, 1);
  if($ipFlag == chr(1))
  {
   $ipSeek = fread($this->fp, 3);
   if(strlen($ipSeek) < 3)
   {
    fclose($this->fp);
    return 'System Error';
   }
   $ipSeek = implode('', unpack('L', $ipSeek.chr(0)));
   fseek($this->fp, $ipSeek);
   $ipFlag = fread($this->fp, 1);
  }
  if($ipFlag == chr(2))
  {
   $AddrSeek = fread($this->fp, 3);
   if(strlen($AddrSeek) < 3)
   {
    fclose($this->fp);
    return 'System Error';
   }
   $ipFlag = fread($this->fp, 1);
   if($ipFlag == chr(2)) {
    $AddrSeek2 = fread($this->fp, 3);
    if(strlen($AddrSeek2) < 3)
    {
     fclose($this->fp);
     return 'System Error';
    }
    $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));
    fseek($this->fp, $AddrSeek2);
   }
   else
   {
    fseek($this->fp, -1, SEEK_CUR);
   }
   while(($char = fread($this->fp, 1)) != chr(0))
   $ipAddr2 .= $char;
   $AddrSeek = implode('', unpack('L', $AddrSeek.chr(0)));
   fseek($this->fp, $AddrSeek);
   while(($char = fread($this->fp, 1)) != chr(0))
   $ipAddr1 .= $char;
  }
  else
  {
   fseek($this->fp, -1, SEEK_CUR);
   while(($char = fread($this->fp, 1)) != chr(0))
   $ipAddr1 .= $char;
   $ipFlag = fread($this->fp, 1);
   if($ipFlag == chr(2))
   {
    $AddrSeek2 = fread($this->fp, 3);
    if(strlen($AddrSeek2) < 3)
    {
     fclose($this->fp);
     return 'System Error';
    }
    $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));
    fseek($this->fp, $AddrSeek2);
   }
   else
   {
    fseek($this->fp, -1, SEEK_CUR);
   }
   while(($char = fread($this->fp, 1)) != chr(0))
   $ipAddr2 .= $char;
  }
  if(preg_match('/http/i', $ipAddr2)) $ipAddr2 = '';
  $ipaddr = "$ipAddr1 $ipAddr2";
  $ipaddr = preg_replace('/CZ88.NET/is', '', $ipaddr);
  $ipaddr = preg_replace('/^s*/is', '', $ipaddr);
  $ipaddr = preg_replace('/s*$/is', '', $ipaddr);
  if(preg_match('/http/i', $ipaddr) || $ipaddr == '') $ipaddr = 'Unknown';
  return ''.$ipaddr;
 }

 function close()
 {
  @fclose($this->fp);
 }
}
?>

仿dedecms顶评[顶,踩]功能源码下载

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Digg Demo</title>
<style>
.buttons{margin:20px 12px 12px;text-align:center;}
.buttons img{margin:0 5px 0 0;}
.mark{padding:15px 0 0 40px;overflow:hidden;zoom:1;}
#mark0, #mark1{width:189px;height:48px;background:url('./img/mark.gif') no-repeat -189px 0;border:0px none;cursor:pointer;position:relative;margin:0;padding:0;overflow:hidden;float:left}
#mark1{background-position:-378px 0;margin-left:10px;}
.bar{position:absolute;left:9px;top:32px;width:55px;height:5px;border:1px solid #40a300;background-color:#fff;overflow:hidden;text-align:left;}
#mark1 .bar{border-color:#555;}
.bar div{background:url('./img/sprites.gif') repeat-x 0 -265px;height:5px;overflow:hidden}
#mark1 .bar div{background-position:0 -270px;}
#barnum1, #barnum2{position:absolute;top:30px;left:70px;font:400 10px/12px arial;color:#333;}
</style>
<script language="javascript" src="./digg.js"></script>

<script type="text/javascript">
var url ='http://127.0.0.1/digg/';

</script>
</head>
<body>
  <div class="mark">
   <div id="mark0" onmouseover="this.style.backgroundPosition='0 0'" onmouseout="this.style.backgroundPosition='-189px 0'" onfocus="this.blur()" onClick="sEval(1190,1)">
    <div class="bar"><div id="eimg1" style="width:50px"></div></div>
    <span id="barnum1"><span id="sp1">92.7%</span> (<span id="s1">18199</span>)</span>
   </div>
   <div id="mark1" onmouseover="this.style.backgroundPosition='-567px 0'" onmouseout="this.style.backgroundPosition='-378px 0'" onfocus="this.blur()" onclick="sEval(1190,2)">
    <div class="bar"><div id="eimg2" style="width:4px"></div></div>
    <span id="barnum2"><span id="sp2">7.3%</span> (<span id="s2">1431</span>)</span>
   </div>
  </div>

</body>
</html>

js代码

function $Obj(o){
 return document.getElementById(o);
}

var etag=false;
function sEval(softid,et){
 if(etag==true)
 {
  alert('您已经投过票了,感谢您的参与!');
  return;
 }
 var file=url +'digg.php?et='+et+'&id='+softid;
 var html_doc=document.getElementsByTagName('head')[0];
    var js=document.createElement('script');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', file);
 js.onreadystatechange=function(){
        if(js.readyState=='loaded'||js.readyState=='complete'){
            sEvalRes();
        }
    }
    js.onload=function(){
        sEvalRes();
    }
 html_doc.appendChild(js);
 etag=true;
}

function sEvalRes(){
 if(re[2]=='success'){
  var s=$Obj('s'+re[1]).innerHTML;
  $Obj('s'+re[1]).innerHTML=parseInt(s)+1;
  sUpdate();
  alert(re[3]);
 }
 else if(re[2]=='fail'){
  alert(re[3]);
  
 }
 else{
  alert('未知错误');
 }
}

function sUpdate(){
 var sUp=parseInt($Obj('s1').innerHTML);
 var sDown=parseInt($Obj("s2").innerHTML);
 var sTotal=sUp+sDown;
 var spUp=(sUp/sTotal)*100;
 spUp=Math.round(spUp*10)/10;
 var spDown=100-spUp;
 spDown=Math.round(spDown*10)/10;
 $Obj('sp1').innerHTML=spUp+'%';
 $Obj('sp2').innerHTML=spDown+'%';
 $Obj('eimg1').style.width = parseInt((sUp/sTotal)*55)+'px';
 $Obj('eimg2').style.width = parseInt((sDown/sTotal)*55)+'px';
}

php代码

<?php
$id =intval($id);
$et =intval($et);
if($_COOKIE['digg'.$id]=='' || empty($_COOKIE['digg'.$id]) ){
 setcookie("digg".$id, $id, time()+3600);  /* expire in 1 hour */
 //读写数据库操作部分省略
 echo "var re=new Array();re[0]=".$id.";re[1]=".$et.";re[2]="success";re[3]="投票成功!";";
}else{
 echo "var re=new Array();re[0]=".$id.";re[1]=".$et.";re[2]="fail";re[3]="嬲你的,

[!--infotagslink--]

相关文章

  • 使用PHP+JavaScript将HTML页面转换为图片的实例分享

    这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Photoshop古装美女图片转为工笔画效果制作教程

    今天小编在这里就来给各位Photoshop的这一款软件的使用者们来说说把古装美女图片转为细腻的工笔画效果的制作教程,各位想知道方法的使用者们,那么下面就快来跟着小编一...2016-09-14
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • 利用JS实现点击按钮后图片自动切换的简单方法

    下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
  • jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮

    jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮...2013-10-13
  • js实现上传图片及时预览

    这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
  • php把读取xml 文档并转换成json数据代码

    在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
  • Photoshop枪战电影海报图片制作教程

    Photoshop的这一款软件小编相信很多的人都已经是使用过了吧,那么今天小编在这里就给大家带来了用Photoshop软件制作枪战电影海报的教程,想知道制作步骤的玩家们,那么下面...2016-09-14
  • python opencv通过4坐标剪裁图片

    图片剪裁是常用的方法,那么如何通过4坐标剪裁图片,本文就详细的来介绍一下,感兴趣的小伙伴们可以参考一下...2021-06-04
  • 使用PHP下载CSS文件中的图片的代码

    共享一段使用PHP下载CSS文件中的图片的代码 复制代码 代码如下: <?php //note 设置PHP超时时间 set_time_limit(0); //note 取得样式文件内容 $styleFileContent = file_get_contents('images/style.css'); //not...2013-10-04
  • 微信小程序如何获取图片宽度与高度

    这篇文章主要给大家介绍了关于微信小程序如何获取图片宽度与高度的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
  • PHP swfupload图片上传的实例代码

    PHP代码如下:复制代码 代码如下:if (isset($_FILES["Filedata"]) || !is_uploaded_file($_FILES["Filedata"]["tmp_name"]) || $_FILES["Filedata"]["error"] != 0) { $upload_file = $_FILES['Filedata']; $fil...2013-10-04
  • ps怎么制作图片阴影效果

    ps软件是现在很多人比较喜欢的,有着非常不错的使用效果,这次文章就给大家介绍下ps怎么制作图片阴影效果,还不知道制作方法的赶紧来看看。 ps图片阴影效果怎么做方法/...2017-07-06
  • C#中图片旋转和翻转(RotateFlipType)用法分析

    这篇文章主要介绍了C#中图片旋转和翻转(RotateFlipType)用法,实例分析了C#图片旋转及翻转Image.RotateFlip方法属性的常用设置技巧,需要的朋友可以参考下...2020-06-25
  • c# 对CSV文件操作(写入、读取、修改)

    这篇文章主要介绍了c# 如何对CSV文件操作,帮助大家更好的理解和学习C#,感兴趣的朋友可以了解下...2020-11-03
  • OpenCV如何去除图片中的阴影的实现

    这篇文章主要介绍了OpenCV如何去除图片中的阴影的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-29
  • python读取和保存mat文件的方法

    本文主要介绍了python读取和保存mat文件的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-25
  • JavaScript 如何禁止用户保存图片

    这篇文章主要介绍了JavaScript 如何禁止用户保存图片,帮助大家完成需求,更好的理解和使用JavaScript,感兴趣的朋友可以了解下...2020-11-19