超级好用的一个php上传图片类(随机名,缩略图,加水印)_PHP
Upimages.class.php php上传类
复制代码 代码如下:
class UpImages {
var $annexFolder = "upload";//附件存放点,默认为:annex
var $smallFolder = "small";//缩略图存放路径,注:必须是放在 $annexFolder下的子目录,默认为:smallimg
var $markFolder = "mark";//水印图片存放处
var $upFileType = "jpg gif png";//上传的类型,默认为:jpg gif png rar zip
var $upFileMax = 1024;//上传大小限制,单位是“KB”,默认为:1024KB
var $fontType;//字体
var $maxWidth = 500; //图片最大宽度
var $maxHeight = 600; //图片最大高度
function UpImages($annexFolder,$smallFolder,$includeFolder) {
$this->annexFolder = $annexFolder;
$this->smallFolder = $smallFolder;
$this->fontType = $includeFolder."/04B_08__.TTF";
}
function upLoad($inputName) {
$imageName = time();//设定当前时间为图片名称
if(@empty($_FILES[$inputName]["name"])) die("没有上传图片信息,请确认");
$name = explode(".",$_FILES[$inputName]["name"]);//将上传前的文件以“.”分开取得文件类型
$imgCount = count($name);//获得截取的数量
$imgType = $name[$imgCount-1];//取得文件的类型
if(strpos($this->upFileType,$imgType) === false) die(error("上传文件类型仅支持 ".$this->upFileType." 不支持 ".$imgType));
$photo = $imageName.".".$imgType;//写入数据库的文件名
$uploadFile = $this->annexFolder."/".$photo;//上传后的文件名称
$upFileok = move_uploaded_file($_FILES[$inputName]["tmp_name"],$uploadFile);
if($upFileok) {
$imgSize = $_FILES[$inputName]["size"];
$kSize = round($imgSize/1024);
if($kSize > ($this->upFileMax*1024)) {
@unlink($uploadFile);
die(error("上传文件超过 ".$this->upFileMax."KB"));
}
} else {
die(error("上传图片失败,请确认你的上传文件不超过 $upFileMax KB 或上传时间超时"));
}
return $photo;
}
function getInfo($photo) {
$photo = $this->annexFolder."/".$photo;
$imageInfo = getimagesize($photo);
$imgInfo["width"] = $imageInfo[0];
$imgInfo["height"] = $imageInfo[1];
$imgInfo["type"] = $imageInfo[2];
$imgInfo["name"] = basename($photo);
return $imgInfo;
}
function smallImg($photo,$width=128,$height=128) {
$imgInfo = $this->getInfo($photo);
$photo = $this->annexFolder."/".$photo;//获得图片源
$newName = substr($imgInfo["name"],0,strrpos($imgInfo["name"], "."))."_thumb.jpg";//新图片名称
if($imgInfo["type"] == 1) {
$img = imagecreatefromgif($photo);
} elseif($imgInfo["type"] == 2) {
$img = imagecreatefromjpeg($photo);
} elseif($imgInfo["type"] == 3) {
$img = imagecreatefrompng($photo);
} else {
$img = "";
}
if(empty($img)) return False;
$width = ($width > $imgInfo["width"]) ? $imgInfo["width"] : $width;
$height = ($height > $imgInfo["height"]) ? $imgInfo["height"] : $height;
$srcW = $imgInfo["width"];
$srcH = $imgInfo["height"];
if ($srcW * $width > $srcH * $height) {
$height = round($srcH * $width / $srcW);
} else {
$width = round($srcW * $height / $srcH);
}
if (function_exists("imagecreatetruecolor")) {
$newImg = imagecreatetruecolor($width, $height);
ImageCopyResampled($newImg, $img, 0, 0, 0, 0, $width, $height, $imgInfo["width"], $imgInfo["height"]);
} else {
$newImg = imagecreate($width, $height);
ImageCopyResized($newImg, $img, 0, 0, 0, 0, $width, $height, $imgInfo["width"], $imgInfo["height"]);
}
if ($this->toFile) {
if (file_exists($this->annexFolder."/".$this->smallFolder."/".$newName)) @unlink($this->annexFolder."/".$this->smallFolder."/".$newName);
ImageJPEG($newImg,$this->annexFolder."/".$this->smallFolder."/".$newName);
return $this->annexFolder."/".$this->smallFolder."/".$newName;
} else {
ImageJPEG($newImg);
}
ImageDestroy($newImg);
ImageDestroy($img);
return $newName;
}
function waterMark($photo,$text) {
$imgInfo = $this->getInfo($photo);
$photo = $this->annexFolder."/".$photo;
$newName = substr($imgInfo["name"], 0, strrpos($imgInfo["name"], ".")) . "_mark.jpg";
switch ($imgInfo["type"]) {
case 1:
$img = imagecreatefromgif($photo);
break;
case 2:
$img = imagecreatefromjpeg($photo);
break;
case 3:
$img = imagecreatefrompng($photo);
break;
default:
return False;
}
if (empty($img)) return False;
$width = ($this->maxWidth > $imgInfo["width"]) ? $imgInfo["width"] : $this->maxWidth;
$height = ($this->maxHeight > $imgInfo["height"]) ? $imgInfo["height"] : $this->maxHeight;
$srcW = $imgInfo["width"];
$srcH = $imgInfo["height"];
if ($srcW * $width > $srcH * $height) {
$height = round($srcH * $width / $srcW);
} else {
$width = round($srcW * $height / $srcH);
}
if (function_exists("imagecreatetruecolor")) {
$newImg = imagecreatetruecolor($width, $height);
ImageCopyResampled($newImg, $img, 0, 0, 0, 0, $width, $height, $imgInfo["width"], $imgInfo["height"]);
} else {
$newImg = imagecreate($width, $height);
ImageCopyResized($newImg, $img, 0, 0, 0, 0, $width, $height, $imgInfo["width"], $imgInfo["height"]);
}
$white = imageColorAllocate($newImg, 255, 255, 255);
$black = imageColorAllocate($newImg, 0, 0, 0);
$alpha = imageColorAllocateAlpha($newImg, 230, 230, 230, 40);
ImageFilledRectangle($newImg, 0, $height-26, $width, $height, $alpha);
ImageFilledRectangle($newImg, 13, $height-20, 15, $height-7, $black);
ImageTTFText($newImg, 4.9, 0, 20, $height-14, $black, $this->fontType, $text[0]);
ImageTTFText($newImg, 4.9, 0, 20, $height-6, $black, $this->fontType, $text[1]);
if($this->toFile) {
if (file_exists($this->annexFolder."/".$this->markFolder."/".$newName)) @unlink($this->annexFolder."/".$this->markFolder."/".$newName);
ImageJPEG($newImg,$this->annexFolder."/".$this->markFolder."/".$newName);
return $this->annexFolder."/".$this->markFolder."/".$newName;
} else {
ImageJPEG($newImg);
}
ImageDestroy($newImg);
ImageDestroy($img);
return $newName;
}
}
?>
使用方法
复制代码 代码如下:
include 'Upimages.class.php';
$max="upload"; //文件上传路径
$mix="small"; //缩略图路径(必须在upload下建立)
$mark="mark"; //加水引的图片存放路径
$text = array("oktang","2012"); //水印内容
$img= new UpImages($max,$mix,$max); //实例化类文件
$photo = $img->upLoad("file"); //上传的文件域
$img->maxWidth = $img->maxHeight = 600; //设置高,和宽
$img->toFile = true;
$newSmallImg = $img->smallImg($photo);
$newMark = $img->waterMark($photo,$text);
echo $newSmallImg;
echo $newMark;
echo "
";
echo "
";
注意里面有个字体文件,大家可以从网上下载。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









이번 글에서는 Win11 시스템에서 작업 표시줄 아이콘을 마우스로 움직일 때 표시되는 썸네일 기능을 끄는 방법을 소개하겠습니다. 이 기능은 기본적으로 켜져 있으며 사용자가 작업 표시줄의 응용 프로그램 아이콘 위에 마우스 포인터를 올리면 응용 프로그램의 현재 창 축소판이 표시됩니다. 그러나 일부 사용자는 이 기능이 덜 유용하거나 경험에 지장을 준다고 생각하여 이 기능을 끄고 싶어할 수도 있습니다. 작업 표시줄 축소판은 재미있을 수도 있지만 주의를 산만하게 하거나 짜증나게 할 수도 있습니다. 이 영역 위로 마우스를 가져가는 빈도를 고려하면 실수로 중요한 창을 몇 번 닫았을 수도 있습니다. 또 다른 단점은 더 많은 시스템 리소스를 사용한다는 것입니다. 따라서 리소스 효율성을 높일 수 있는 방법을 찾고 있다면 비활성화하는 방법을 알려드리겠습니다. 하지만

Windows 1122H2는 Windows 11의 첫 번째 기능 업데이트이며 다양한 새로운 기능과 꼭 필요한 개선 사항을 제공합니다. 개선 사항 중 하나는 폴더 내 파일의 폴더 축소판을 미리 볼 수 있는 기능입니다. Windows 11의 폴더 축소판 모양이 마음에 들지 않는 경우 이를 변경하는 방법은 다음과 같습니다. 미리보기를 확대하고 폴더 아이콘 스타일을 변경할 수 있는 Windows 11의 폴더 축소판용 사용자 정의 아이콘 세트(Reddit의 LEXX911 제공) 여전히 개별 파일 미리보기를 처리해야 하지만(예를 들어 Windows 7에서는 폴더 축소판이 여러 이미지를 동시에 표시할 수 있음) 더 크고 더 편리하게 만들 수 있습니다. 중요한 힌트:

1. 먼저 Visual Studio Code를 입력하고 왼쪽 상단의 [파일]을 클릭합니다. 2. 그런 다음 [기본 설정]을 클릭하세요. 3. [설정] 항목을 클릭하세요. 4. [텍스트 편집기-썸네일]을 클릭하세요. 5. 마지막으로 썸네일 항목에서 [썸네일 표시 여부 제어]를 켜주세요.

나는 종종 몇 가지 사소한 컴퓨터 문제가 중요한 순간에 매우 골치 아프다고 말하는 고객을 만납니다. 요약하면 다음과 같습니다. USB 플래시 드라이브에 파일을 복사할 수 없는 이유는 USB 플래시 드라이브의 파티션 형식이 NTFS가 아닌 FAT32이기 때문일 수 있습니다. 대용량 파일을 복사할 수 있도록 USB 플래시 드라이브의 파티션 형식을 NTFS로 변경해 볼 수 있습니다. 둘째, 사진은 썸네일로 표시되지 않기 때문에 하나씩 클릭해서 찾아야 합니다. 세 번째 유형은 페이지가 갑자기 커지거나 작아지는 경우입니다. 이 세 가지 상황을 모른다면 몇 가지 간단한 조작으로 해결할 수 있습니다. 1. U 디스크 파티션을 NTFS로 변경합니다. 새로 구입한 U 디스크의 기본 파티션 형식은 일반적으로 FAT32 이므로 사용에는 문제가 없습니다. 하지만 4G보다 큰 파일을 복사해야 하는 경우에는 복사할 수 없다는 메시지가 나타나 사용에 다소 문제가 발생합니다. ~을 위한

인터넷이 발달하면서 사진은 웹페이지에서 없어서는 안 될 부분이 되었습니다. 하지만 이미지 수가 증가함에 따라 이미지 로딩 속도가 매우 중요한 문제가 되었습니다. 이 문제를 해결하기 위해 많은 웹사이트에서는 썸네일을 사용하여 이미지를 표시하지만, 썸네일을 생성하려면 전문적인 이미지 처리 도구를 사용해야 하는데, 이는 일부 비전문가에게는 매우 번거로운 일입니다. 그런 다음 JavaScript를 사용하여 자동 썸네일 생성을 달성하는 것이 좋은 선택이 됩니다. 자바 사용 방법

PHP를 사용하여 썸네일을 생성하는 단계에 대한 자세한 설명, 빠른 인터넷 발전 시대에 사진은 웹 페이지에서 없어서는 안될 부분이지만 고해상도 사진은 많은 대역폭을 차지할 뿐만 아니라 사용자의 웹페이지 로딩 속도에도 영향을 줍니다. 따라서 이미지 크기와 파일 크기를 줄이기 위해 원본 이미지에서 축소판을 생성해야 하는 경우가 많습니다. 널리 사용되는 서버측 스크립팅 언어인 PHP는 썸네일을 생성하는 데 사용할 수 있는 풍부한 이미지 처리 기능을 제공합니다. 다음은 PHP에서 썸네일을 생성하는 단계를 자세히 소개합니다.

1. MeituXiuXiu의 [사진 꾸미기] 기능에서 워터마크를 추가하려는 사진을 업로드하거나 선택합니다. 2. 하단 툴바에서 [텍스트] 옵션을 클릭한 후 워터마크 내용을 입력하고 색상, 크기, 투명도를 조정하세요. 3. 워터마크의 크기와 위치를 조정하고, 만족스러운지 확인한 후 [마침]을 클릭하여 편집을 완료합니다. 4. 마지막으로 오른쪽 상단의 [저장] 버튼을 클릭하면 워터마크가 포함된 이미지가 저장됩니다.

PowerPoint 프레젠테이션의 표는 프레젠테이션할 때 데이터를 구조화된 형식으로 표시하는 데 도움이 됩니다. 표에 표시된 숫자는 청중에게 더 나은 영향을 미칩니다. Microsoft Powerpoint에는 프레젠테이션에 표를 추가하는 여러 가지 방법이 있습니다. 새 테이블을 추가하거나 Excel 또는 Word와 같은 다른 응용 프로그램의 기존 테이블에서 복사하도록 선택할 수 있습니다. 방법 1: 그리드에서 행과 열을 선택하여 표 삽입 1단계: PowerPoint 축소판 그림에서 마스터 슬라이드를 마우스 오른쪽 버튼으로 클릭하고 새 슬라이드를 선택합니다. 2단계: 삽입으로 이동하여 표를 클릭합니다. 3단계: 드롭다운 메뉴에서 테이블에 필요한 총 행과 열 수를 선택합니다. 알아채다
