Cara menggunakan png to php

Mari kita mengenali terlebih dahulu bagaimana system sebuah file bekerja, simplenya sebuah file akan dibaca dengan memanfaatkan sebuah format pada binary file tersebut yang biasanya meliputi file header, metadata dan lain-lain. File pertama kali akan dilihat pada file header yang mendandakan file apa itu misal pada sebuah file png maka akan terdapat sebuah file header yang tersusun dari sebuah nilai biner yang akan menyusun sebuah "Magic Number" atau file signature seperti gambar dibawah ini:

Cara menggunakan png to php

Untuk mengetahui image number dapat teman-teman baca disini

Disini kita dapat memanipulasinya dengan cara membuat seolah-olah file php akan dibaca sebagai gambar, yaitu dengan cara:

gan saya mau nanya permasalahan nya gini saya mau membuat validasi gambar ketika user mengupload gambar jika nama gambarnya itu sama kan utomatis berubah seperti "gambar_10193.jpg" nah permasalahan nya ketika saya mengupload gambar berekstensi .png maka dia otomatis berubah menjadi "gambar.png_1038920" nah format nya si gambar .png ini berubah menjadi .jpg mohon bantuan nya gan.
 
if(isset($_POST['submit']) ){
			//print_r($_FILES['gambar']);
			
			$time	= time();
			$nama 	= $_FILES['gambar']['name'];
			$jenis	= $_FILES['gambar']['type'];
			$lok	= $_FILES['gambar']['tmp_name'];
			$error 	= $_FILES['gambar']['error'];
			$size	= $_FILES['gambar']['size'];
			$nfile	= 'upload/'. $nama; //nfile = nama file
			
			if( $error == 0){
				if( $size <= 1000000){
					//proses pergantian nama dan extensi
					if(file_exists($nfile) ){
						$nfile = str_replace(".jpg" , "" , $nfile);
						$nfile = $nfile . "_" . $time . ".jpg";
						
						move_uploaded_file($lok , $nfile);
						
						echo"

file berhasil di upload

"; }else{a move_uploaded_file($lok , $nfile); echo"

file berhasil di upload

"; } //end ------------------------------ }else{ echo "

File terlalu Besar

"; } }else{ echo "

ada error

"; } }
getSlides()->get_Item(0); $filename = 'image.png'; $f = fopen($filename, 'r'); if ($f) { $contents = fread($f, filesize($filename)); fclose($f); } $image = $pres->getImages()->addImage($contents); $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 10, 10, 100, 100, $image); for ($i = 0; $i < java_values($pres->getSlides()->size()); $i++) { $slide = $pres->getSlides()->get_Item($i); $javafos = new Java("java.io.FileOutputStream", "slide_". $i .".svg"); $slide->writeAsSvg($javafos); } } finally { if ($pres != null) $pres->dispose(); } ?>
getSlides()->get_Item(0); $filename = 'image.png'; $f = fopen($filename, 'r'); if ($f) { $contents = fread($f, filesize($filename)); fclose($f); } $image = $pres->getImages()->addImage($contents); $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 10, 10, 100, 100, $image); for ($i = 0; $i < java_values($pres->getSlides()->size()); $i++) { $bmp = $pres->getSlides()->get_Item($i)->getThumbnail(2, 2); $imageio = new Java("javax.imageio.ImageIO"); $javafile = new Java("java.io.File", "slide_". $i .".jpg"); $imageio->write($bmp, "JPG", $javafile); } } finally { if ($pres != null) $pres->dispose(); } ?>

Dalam beberapa kasus, kita perlu membuat gambar dinamis dengan cepat dan menulis teks pada gambar di aplikasi web. Kalau kamu punya kebutuhan seperti ini, jangan khawatir kali ini saya akan memberikan contoh script PHP sederhana untuk convert teks ke gambar dengan PHP dan menyimpannya sebagai format PNG atau JPG.

Untuk mengontrol teks untuk proses pembuatan gambar, kita harus membuat class PHP. Dengan menggunakan class PHP ini kita dapat dengan mudah membuat gambar dan menambahkan beberapa teks ke gambar.

Kita akan menggunakan Libary GD untuk membuat dan memanipulasi file gambar dalam script PHP. Jadi sebelum kamu memulai, pastikan PHP GD sudah diinstal pada server kamu. Jika kamu menggunakan XAMPP, secara default, GD sudah aktif otomatis sejak XAMPP versi 1.7.0.

Class TeksKeGambar

Class TeksKeGambar akan membantu untuk menghasilkan gambar dan menambahkan teks ke gambar. Class TeksKeGambar berisi 4 fungsi dan fungsi tersebut akan melakukan hal berikut.

  • buatGambar() – Menciptakan gambar dari teks. String teks harus diberikan agar dapat menulis pada gambar. Juga, kamu dapat menentukan ukuran font, lebar gambar, dan tinggi gambar.
  • tampilkanGambar() – Mengembalikan gambar yang dibuat oleh fungsi buatGambar().
  • simpanKePng() – Menyimpan file gambar sebagai format .png. Kamu dapat menentukan nama file dan lokasi untuk menyimpan gambar.
  • simpanKeJpg() – Menyimpan file gambar sebagai format .jpg. Kamu dapat menentukan nama file dan lokasi untuk menyimpan gambar.
<?php
/**
 * class TeksKeGambar
 * Class ini digunakan untuk mengconvert teks ke gambar
*/
class TeksKeGambar {
    private $img;

    //Membuat gambar dari teks
    function buatGambar($text, $ukuranFont = 20, $lebarGbr = 400, $tinggiGbr = 80){

        //path font
        $font = 'font/Tiempos_Text_Regular.otf';

        //membuat gambar
        $this->img = imagecreatetruecolor($lebarGbr, $tinggiGbr);

        //memberi warna
        $white = imagecolorallocate($this->img, 255, 255, 255);
        $grey = imagecolorallocate($this->img, 128, 128, 128);
        $black = imagecolorallocate($this->img, 0, 0, 0);
        imagefilledrectangle($this->img, 0, 0, $lebarGbr - 1, $tinggiGbr - 1, $white);

        //ganti baris
        $pisahTeks = explode ( "\\n" , $text );
        $baris = count($pisahTeks);

        foreach($pisahTeks as $txt){
            $textBox = imagettfbbox($ukuranFont,$angle,$font,$txt);
            $lebarTeks = abs(max($textBox[2], $textBox[4]));
            $tinggiTeks = abs(max($textBox[5], $textBox[7]));
            $x = (imagesx($this->img) - $lebarTeks)/2;
            $y = ((imagesy($this->img) + $tinggiTeks)/2)-($baris-2)*$tinggiTeks;
            $baris = $baris-1;

            //menambahkan bayangan untuk teks
            imagettftext($this->img, $ukuranFont, $angle, $x, $y, $grey, $font, $txt);

            //menambahkan teks
            imagettftext($this->img, $ukuranFont, $angle, $x, $y, $black, $font, $txt);
        }
  return true;
    }

    //Menampilkan gambar
    function tampilkanGambar(){
        header('Content-Type: image/png');
        return imagepng($this->img);
    }

    //Simpan gambar sebagai format png
    function simpanKePng($namaFile = 'text-image', $lokasi = ''){
        $namaFile = $namaFile.".png";
        $namaFile = !empty($lokasi)?$lokasi.$namaFile:$namaFile;
        return imagepng($this->img, $namaFile);
    }

    //Simpan gambar sebagai format jpg
    function simpanKeJpg($namaFile = 'text-image', $lokasi = ''){
        $namaFile = $namaFile.".jpg";
        $namaFile = !empty($lokasi)?$lokasi.$namaFile:$namaFile;
        return imagejpeg($this->img, $namaFile);
    }
}

Convert teks ke gambar di PHP

Menyertakan file TeksKeGambar.php (class TeksKeGambar) dan membuat objek. Memanggil fungsi tampilkanGambar() dan masukkan string teks. Kalo kamu ingin menambahkan baris baru, tambahkan “\n” sebelum baris baru.

//menyertakan class TeksKeGambar
require_once 'TeksKeGambar.php';

//membuat object img
$img = new TeksKeGambar;

//membuat gambar dari teks
$text = 'Codingan.\nTutorial pemograman web.';
$img->buatGambar($text);

Untuk menampilkan gambar gunakan fungsi tampilkanGambar().

//menampilkan gambar
$image = $img->tampilkanGambar();

Untuk menyimpan file gambar sebagai format PNG atau JPG, gunakan fungsi simpanKePng() atau simpanKeJpg(). Tentukan nama file dan lokasi untuk menyimpan gambar, jika tidak, gambar akan disimpan dengan nama default ke direktori yang sama di mana script berada.

//simpan gambar sebagai format png
$img->simpanKePng('hasil-convert','gambar/');

//simpan gambar sebagai format jpg
$img->simpanKeJpg('hasil-convert','gambar/');

Kesimpulan

Di clas TeksKeGambar saya menggunakan font Roboto Black untuk teksnya. Kamu bisa mengganti fontnya, dan tempatkan font di direktori

//menyertakan class TeksKeGambar
require_once 'TeksKeGambar.php';

//membuat object img
$img = new TeksKeGambar;

//membuat gambar dari teks
$text = 'Codingan.\nTutorial pemograman web.';
$img->buatGambar($text);
3 dan tentukan path font dalam fungsi buatGambar() di class TeksKeGambar. Kamu dapat mendownload Source code convert teks ke gambar di PHP dibawah ini.