Cara menggunakan PHP dan UniApp untuk melaksanakan fungsi tera air gambar
Pengenalan:
Dalam era media sosial hari ini, gambar telah menjadi salah satu kaedah komunikasi yang biasa digunakan oleh orang ramai. Untuk melindungi gambar mereka dengan lebih baik, ramai orang sering menambah tera air pada gambar. Artikel ini akan memperkenalkan cara menggunakan PHP dan UniApp untuk melaksanakan fungsi tera air imej untuk menjadikan imej anda lebih diperibadikan dan selamat.
1. PHP melaksanakan fungsi tera air imej
// Tentukan teks tera air
$teks = 'Tanda air'
// Tentukan fon tera air
$font = 'msyh.ttc' // Fon Microsoft Yahei digunakan di sini, sila pastikan Fail fon tersedia pada pelayan
// Tentukan saiz fon tera air
$fontsize = 40;
// Tentukan warna teks tera air
$color = imagecolorallocatealpha($imej, 255, 255, 255, 50);
// Buka fail imej sumber
$sourceImage = imagecreatefromjpeg('source.jpg');
// Dapatkan lebar dan tinggi imej sumber
$sourceWidth = imagesx($sourceImage);
$sourceHeight = imagesy ($sourceImage);
/ / Buat imej baharu untuk menambah tera air
$newImage = imagecreatetruecolor($sourceWidth, $sourceHeight);
// Salin imej sumber ke imej baharu
imagecopy($newImage, $sourceImage, 0, 0, 0, 0, $sourceWidth, $sourceHeight);
// Tambahkan teks tera air pada imej baharu
imagettftext($newImage, $fontsize, 0, $sourceWidth * 0.5 - $fontsize 0.5, $sourceHeight * 0.5 + $fontsize 0.5 , $color, $font, $text);
// Output gambar dengan tera air
header('Content-Type: image/jpeg');
imagejpeg($newImage);
// Keluarkan sumber imej
imagedestroy($sourceImage);
imagedestroy($newImage);
?>
2. UniApp melaksanakan fungsi tera air imej
<image src="../../static/source.jpg" mode="aspectFit" @tap="addWatermark" />
gt; kaedah lalai {
addWatermark() { uni.getImageInfo({ src: '../../static/source.jpg', success: (res) => { uni.previewImage({ urls: ['../../static/source.jpg'], success: () => { uni.showLoading({ title: '正在添加水印...', mask: true }); const ctx = uni.createCanvasContext('watermarkCanvas'); ctx.drawImage(res.path, 0, 0, res.width, res.height); ctx.setFontSize(40); ctx.setFillStyle('rgba(255, 255, 255, 0.5)'); ctx.setTextAlign('center'); ctx.setTextBaseline('middle'); ctx.fillText('Watermark', res.width * 0.5, res.height * 0.5); ctx.draw(false, () => { uni.canvasToTempFilePath({ canvasId: 'watermarkCanvas', success: (result) => { uni.hideLoading(); uni.saveImageToPhotosAlbum({ filePath: result.tempFilePath, success: () => { uni.showToast({ title: '水印已添加', icon: 'success' }); }, fail: () => { uni.showToast({ title: '保存失败', icon: 'none' }); } }); }, fail: () => { uni.hideLoading(); uni.showToast({ title: '添加水印失败', icon: 'none' }); } }); }); } }); }, fail: () => { uni.showToast({ title: '获取图片信息失败', icon: 'none' }); } }); }
Namakan imej yang akan ditanda air sebagai source.jpg dan letakkannya dalam direktori statik.
Atas ialah kandungan terperinci Cara menggunakan PHP dan UniApp untuk melaksanakan fungsi tera air imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!