Php ile resmi nasıl 90 derece çevirebilirim ?
Merhaba,
Upload klasörümde resimlerim mevcut.
Mysqlde de bunların ismini tutuyorum.
Fancybox ile sitede gösteriyorum fakat bazı kullanıcılar resimler upload ederken 90 derece dönmüş bir şekilde yüklüyorlar.
Bu yan olan resimleri sitede 90 derece saat yönüne veya tersine nasıl çevirtebilirim ?
Yani tıkladığı zaman saat yönüne döndürsün ve öyle kaydetsin.
Yardımlarınız için şimdiden çok teşekkür ederim..
Merhaba!
JavaScript ile Resim Döndürme:
Kullanıcılar resmi yüklediğinde, JavaScript kullanarak resmin oryantasyonunu kontrol edebilir ve gerektiğinde döndürebilirsiniz. Exif.js gibi kütüphaneler, resim dosyalarının içindeki EXIF verilerini okuyarak resmin doğru oryantasyonunu bulmanıza yardımcı olabilir.Örnek kullanım (Exif.js kütüphanesi kullanarak):
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script> <input type="file" id="fileInput" accept="image/*" onchange="handleFileSelect(event)"> <img id="previewImage" alt="Preview"> <script> function handleFileSelect(event) { const file = event.target.files[0]; if (file) { const reader = new FileReader(); reader.onload = function (e) { const img = new Image(); img.src = e.target.result; img.onload = function () { const orientation = EXIF.getTag(this, "Orientation"); const rotatedImage = rotateImage(img, orientation); document.getElementById("previewImage").src = rotatedImage.src; }; }; reader.readAsDataURL(file); } } function rotateImage(img, orientation) { const canvas = document.createElement("canvas"); const ctx = canvas.getContext("2d"); if (orientation > 4) { canvas.width = img.height; canvas.height = img.width; } else { canvas.width = img.width; canvas.height = img.height; } switch (orientation) { case 2: ctx.transform(-1, 0, 0, 1, img.width, 0); break; case 3: ctx.transform(-1, 0, 0, -1, img.width, img.height); break; case 4: ctx.transform(1, 0, 0, -1, 0, img.height); break; case 5: ctx.transform(0, 1, 1, 0, 0, 0); break; case 6: ctx.transform(0, 1, -1, 0, img.height, 0); break; case 7: ctx.transform(0, -1, -1, 0, img.height, img.width); break; case 8: ctx.transform(0, -1, 1, 0, 0, img.width); break; default: ctx.transform(1, 0, 0, 1, 0, 0); break; } ctx.drawImage(img, 0, 0); const rotatedImage = new Image(); rotatedImage.src = canvas.toDataURL("image/jpeg"); return rotatedImage; } </script>
PHP ile Güncelleme:
Ardından, döndürülen resmi sunucuya yüklediğinizde, PHP veya başka bir sunucu tarafı dili kullanarak resmi güncelleyebilir ve veritabanındaki ismini değiştirebilirsiniz.Örnek PHP kodu (sadece fikir vermesi açısından):
$uploadedImagePath = 'path/to/uploaded/image.jpg'; $rotatedImagePath = 'path/to/uploaded/rotated_image.jpg'; $img = imagecreatefromjpeg($uploadedImagePath); $rotatedImg = imagerotate($img, 90, 0); // 90 derece saat yönüne döndürme imagejpeg($rotatedImg, $rotatedImagePath); imagedestroy($img); imagedestroy($rotatedImg); // Veritabanında ismi güncelle // Örneğin: UPDATE images SET filename = 'rotated_image.jpg' WHERE filename = 'image.jpg';