PHP 개발 스킬: 이미지 자르기 기능 구현 방법
PHP 개발 스킬: 이미지 자르기 기능 구현 방법
웹사이트 개발을 하다 보면 아바타 업로드, 이미지 썸네일 생성 등 이미지를 잘라야 하는 경우가 종종 발생합니다. 이 기사에서는 PHP를 사용하여 이미지 자르기 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.
- 준비
시작하기 전에 서버에 GD 라이브러리가 설치되어 있는지 확인해야 합니다. GD 라이브러리는 이미지 작업을 위한 기능을 제공하는 PHP의 확장입니다. 설치되어 있지 않은 경우 다음 명령을 사용하여 설치할 수 있습니다.
sudo apt-get install php7.2-gd
- 자르기 페이지 만들기
먼저 업로드 양식과 자르기 미리보기가 포함된 페이지를 만들어야 합니다. 다음은 간단한 HTML 코드 예입니다.
<!DOCTYPE html> <html> <head> <title>图片裁剪</title> <style> #uploadForm { margin: 20px; } #imagePreview { width: 200px; height: 200px; border: 1px solid #ccc; margin-top: 20px; } </style> </head> <body> <form id="uploadForm" action="crop.php" method="post" enctype="multipart/form-data"> <input type="file" name="file" accept="image/*" required> <input type="submit" value="上传"> </form> <div id="imagePreview"></div> <script> var uploadForm = document.getElementById('uploadForm'); var imagePreview = document.getElementById('imagePreview'); uploadForm.addEventListener('change', function() { var file = this['file'].files[0]; var reader = new FileReader(); reader.onload = function(e) { imagePreview.innerHTML = '<img src="' + e.target.result + '" alt="PHP 개발 스킬: 이미지 자르기 기능 구현 방법" >'; } reader.readAsDataURL(file); }); </script> </body> </html>
이 페이지에는 업로드 양식과 잘린 미리보기를 표시하기 위한 컨테이너가 포함되어 있습니다. JavaScript 코드를 통해 사용자가 업로드한 이미지를 실시간으로 표시할 수 있습니다.
- 자르기 기능 구현하기
다음으로, 업로드된 이미지를 받아 자르기 작업을 수행할 PHP 파일을 생성해야 합니다. 다음은 간단한 자르기 코드 예시입니다.
<?php // 获取上传的图片 $file = $_FILES['file']; // 获取裁剪参数 $x = $_POST['x']; $y = $_POST['y']; $width = $_POST['width']; $height = $_POST['height']; // 创建一个新的图片资源 $image = imagecreatefromjpeg($file['tmp_name']); // 创建裁剪后的图片资源 $croppedImage = imagecreatetruecolor($width, $height); // 进行裁剪操作 imagecopy($croppedImage, $image, 0, 0, $x, $y, $width, $height); // 保存裁剪后的图片 imagejpeg($croppedImage, 'cropped.jpg'); // 释放图片资源 imagedestroy($image); imagedestroy($croppedImage); echo '图片裁剪成功'; ?>
이 예시에서는 먼저 업로드된 이미지와 자르기 매개변수를 가져옵니다. 그런 다음 새 이미지 리소스와 잘린 이미지 리소스를 만듭니다. 다음으로 imagecopy()
函数进行裁剪操作。最后,使用imagejpeg()
기능을 사용하여 자른 이미지를 저장합니다. 실제 상황에 따라 이미지를 저장하는 경로를 수정해야 한다는 점에 유의하세요. 필요에 따라 회전 추가, 크기 조정 및 기타 작업 추가 등 자르기 기능을 확장할 수 있습니다.
- 페이지 상호 작용 개선
마지막으로 잘린 페이지의 JavaScript 코드에 자르기 매개변수의 획득 및 제출 논리를 추가할 수 있습니다. 다음은 전체 데모 코드 예입니다.
<!DOCTYPE html> <html> <head> <title>图片裁剪</title> <style> #uploadForm { margin: 20px; } #imagePreview { width: 200px; height: 200px; border: 1px solid #ccc; margin-top: 20px; } #cropForm { margin-top: 20px; } </style> </head> <body> <form id="uploadForm" action="crop.php" method="post" enctype="multipart/form-data"> <input type="file" name="file" accept="image/*" required> <input type="submit" value="上传"> </form> <div id="imagePreview"></div> <form id="cropForm" action="crop.php" method="post"> <input type="hidden" name="x"> <input type="hidden" name="y"> <input type="hidden" name="width"> <input type="hidden" name="height"> <input type="submit" value="裁剪"> </form> <script> var uploadForm = document.getElementById('uploadForm'); var imagePreview = document.getElementById('imagePreview'); var cropForm = document.getElementById('cropForm'); uploadForm.addEventListener('change', function() { var file = this['file'].files[0]; var reader = new FileReader(); reader.onload = function(e) { imagePreview.innerHTML = '<img src="' + e.target.result + '" alt="PHP 개발 스킬: 이미지 자르기 기능 구현 방법" >'; } reader.readAsDataURL(file); }); cropForm.addEventListener('submit', function(e) { e.preventDefault(); var image = imagePreview.querySelector('img'); var rect = image.getBoundingClientRect(); var x = rect.left - imagePreview.offsetLeft; var y = rect.top - imagePreview.offsetTop; var width = rect.width; var height = rect.height; cropForm.querySelector('[name="x"]').value = x; cropForm.querySelector('[name="y"]').value = y; cropForm.querySelector('[name="width"]').value = width; cropForm.querySelector('[name="height"]').value = height; cropForm.submit(); }); </script> </body> </html>
이 예에서는 자르기 매개변수를 저장하기 위해 자르기 양식에 숨겨진 입력 필드를 추가합니다. 양식을 제출하기 전에 JavaScript 코드를 통해 이미지의 위치와 크기를 얻은 다음 숨겨진 필드에 자르기 매개변수를 입력하고 양식을 제출합니다.
요약
위의 과정을 거쳐 PHP를 이용한 이미지 자르기 기능을 성공적으로 구현했습니다. 양식과 JavaScript 코드를 업로드하면 사용자가 업로드한 이미지를 실시간으로 미리 볼 수 있으며, 자르기 양식이 제출되면 자르기 매개변수가 자르기 작업을 위해 배경 PHP 스크립트로 전달됩니다. 물론 이는 단순한 예일 뿐이며 실제 애플리케이션에서는 특정 요구 사항에 따라 더 복잡한 기능 확장이 필요할 수 있습니다. 이 기사가 도움이 되기를 바랍니다!
위 내용은 PHP 개발 스킬: 이미지 자르기 기능 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 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 팁 공유: Microsoft 계정 로그인을 건너뛰는 한 가지 요령 Windows 11은 Microsoft가 출시한 최신 운영 체제로, 새로운 디자인 스타일과 많은 실용적인 기능을 갖추고 있습니다. 그러나 일부 사용자의 경우 시스템을 부팅할 때마다 Microsoft 계정에 로그인해야 하는 것이 다소 성가실 수 있습니다. 당신이 그들 중 하나라면, Microsoft 계정 로그인을 건너뛰고 데스크탑 인터페이스로 직접 들어갈 수 있는 다음 팁을 시도해 볼 수도 있습니다. 먼저 로그인하려면 Microsoft 계정 대신 시스템에 로컬 계정을 만들어야 합니다. 이렇게 하면 장점은

우리는 엑셀로 표를 생성하고 편집하는 일이 많은데 이제 막 소프트웨어를 접한 초보자로서 엑셀을 이용해 표를 만드는 방법은 생각보다 쉽지 않습니다. 아래에서는 초보자, 즉 초보자가 마스터해야 할 테이블 생성의 몇 가지 단계에 대해 몇 가지 훈련을 수행합니다. 초보자를 위한 샘플 양식은 다음과 같습니다. 작성 방법을 살펴보겠습니다! 1. 새로운 엑셀 문서를 만드는 방법은 두 가지가 있습니다. [바탕화면] - [새로 만들기] - [xls] 파일의 빈 곳을 마우스 오른쪽 버튼으로 클릭하시면 됩니다. [시작]-[모든 프로그램]-[Microsoft Office]-[Microsoft Excel 20**]을 사용할 수도 있습니다. 2. 새 ex를 두 번 클릭합니다.

C 언어에서는 다른 변수의 주소를 저장하는 포인터를 나타내고, &는 변수의 메모리 주소를 반환하는 주소 연산자를 나타냅니다. 포인터 사용에 대한 팁에는 포인터 정의, 포인터 역참조 및 포인터가 유효한 주소를 가리키는지 확인하는 것이 포함됩니다. 주소 연산자 사용에 대한 팁에는 변수 주소 가져오기 및 배열 요소의 주소를 가져올 때 배열의 첫 번째 요소 주소 반환이 포함됩니다. . 문자열을 반전시키기 위해 포인터 및 주소 연산자를 사용하는 방법을 보여주는 실제 예입니다.

VSCode(Visual Studio Code)는 Microsoft에서 개발한 오픈 소스 코드 편집기로, 강력한 기능과 풍부한 플러그인 지원을 갖추고 있어 개발자가 선호하는 도구 중 하나입니다. 이 기사에서는 초보자가 VSCode 사용 기술을 빠르게 익히는 데 도움이 되는 소개 가이드를 제공합니다. 이번 글에서는 VSCode 설치 방법, 기본적인 편집 작업, 단축키, 플러그인 설치 등을 소개하고, 독자들에게 구체적인 코드 예시를 제공하겠습니다. 1. 먼저 VSCode를 설치하세요.

공개된 Win11 트릭: Microsoft 계정 로그인을 우회하는 방법 최근 Microsoft는 새로운 운영 체제인 Windows11을 출시하여 많은 관심을 받았습니다. 이전 버전에 비해 Windows 11은 인터페이스 디자인과 기능 개선 측면에서 많은 새로운 조정이 이루어졌지만 가장 눈길을 끄는 점은 사용자가 Microsoft 계정으로 시스템에 로그인하도록 강요한다는 것입니다. . 일부 사용자의 경우 로컬 계정으로 로그인하는 데 더 익숙하고 개인 정보를 Microsoft 계정에 바인딩하는 것을 꺼릴 수 있습니다.

제목: PHP 프로그래밍 팁: 3초 안에 웹 페이지로 이동하는 방법 웹 개발을 하다 보면 일정 시간 내에 자동으로 다른 페이지로 이동해야 하는 상황이 자주 발생합니다. 이 기사에서는 PHP를 사용하여 3초 내에 페이지로 이동하는 프로그래밍 기술을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저, 페이지 점프의 기본 원리는 HTTP 응답 헤더의 Location 필드를 통해 구현됩니다. 이 필드를 설정하면 브라우저가 지정된 페이지로 자동으로 이동할 수 있습니다. 다음은 P를 사용하는 방법을 보여주는 간단한 예입니다.

양식은 웹 사이트나 응용 프로그램을 작성하는 데 있어 필수적인 부분입니다. 널리 사용되는 PHP 프레임워크인 Laravel은 풍부하고 강력한 양식 클래스를 제공하여 양식 처리를 보다 쉽고 효율적으로 만듭니다. 이 글에서는 개발 효율성을 향상시키는 데 도움이 되는 Laravel 폼 클래스 사용에 대한 몇 가지 팁을 소개합니다. 다음은 구체적인 코드 예시를 통해 자세히 설명합니다. 양식 생성하기 Laravel에서 양식을 생성하려면 먼저 뷰에 해당 HTML 양식을 작성해야 합니다. 양식 작업 시 Laravel을 사용할 수 있습니다.

Go 언어 프로그램 개발에 있어서 기능 재구성 능력은 매우 중요한 부분입니다. 기능을 최적화하고 리팩터링하면 코드 품질과 유지 관리 가능성을 향상시킬 수 있을 뿐만 아니라 프로그램 성능과 가독성도 향상시킬 수 있습니다. 이 기사에서는 독자가 이러한 기술을 더 잘 이해하고 적용할 수 있도록 특정 코드 예제와 결합된 Go 언어의 함수 재구성 기술을 탐구합니다. 1. 코드 예제 1: 중복된 코드 조각 추출 실제 개발에서는 재사용된 코드 조각을 자주 접하게 됩니다. 이때 반복되는 코드를 독립적인 함수로 추출하는 것을 고려해 볼 수 있습니다.
