2012-06-12 11 views
5

tôi cần sự giúp đỡ của bạnPHP Merge 2 hình ảnh (Insert khuôn mặt cho một hình ảnh)

tôi có hai hình ảnh,
1. http://i.imgur.com/pyWGk.jpg (hình ảnh khuôn mặt, gõ: jpeg)
2. http://i.imgur.com/LYk07.png (hình ảnh khung hình, với lỗ ở mặt, gõ: png)

tôi muốn chèn hình ảnh khuôn mặt vào ảnh khung

tôi đã cố gắng kịch bản này

<?php 
$image = imagecreatefromjpeg('face.jpg'); 
$frame = imagecreatefrompng('ironman.png'); 

$iw = imagesx($image); 
$ih = imagesy($image); 

$fw = imagesx($frame); 
$fh = imagesy($frame); 

imagealphablending($frame, true); 
imagesavealpha($frame, true); 
imagecopy($image, $frame, 0, 0, 0, 0, $fw, $fh); 

header('Content-Type: image/jpeg'); 
imagejpeg($image); 

imagedestroy($image); 
imagedestroy($frame); 
?> 

Vấn đề là:
Nghị quyết của hình ảnh kết quả không giống nhau, độ phân giải hình ảnh khung hình, và
Làm thế nào để thay đổi vị trí của hình ảnh khuôn mặt, vì vậy hình ảnh khuôn mặt có thể phải vào lỗ theo hình ảnh khung

+0

Câu hỏi này quá rộng và cho thấy thiếu tài liệu đọc. Thật không may tôi ra khỏi phiếu bầu :). – kapa

+0

Xin chào user1450710, bạn có tìm thấy giải pháp của tác vụ này không? –

Trả lời

0

Bạn có thể chia tỷ lệ hình ảnh để có cùng độ phân giải. Dưới đây là đoạn code mẫu cho rộng:

function scale($scale){ 
    //you can get image width and height from image info 
    $width = $image_width * $scale/100; 
    $height = $image_height * $scale/100; 

    $scaled_image = imagecreatetruecolor($width, $height); 
    imagecopyresampled($scaled_image, $old_image, 0, 0, 0, 0, $width, $height, $image_width, $image_height); 
} 

Để thay đổi vị trí của hình ảnh mặt bạn có thể thiết lập các thông số mà bạn muốn trong imagecopy chức năng. Bạn cần phải đặt dst_xdst_y.