Ik wil met photoshop een afbeelding transparant maken om deze met een php script op afbeeldingen te plaatsen.

Ik heb het volgende gedaan.

Afbeelding met photoshop geopend en opacity naar 30% gebracht.
Save as Web en opgeslagen als png-24 transparancy aangevinkt.

in het script heb ik

imagealphablending($watermerk, true);

aanstaan, maar nog wordt mijn afbeelding niet transparant weergeven.

Iemand een idee waar dit aan kan liggen?

imagecopymerge($image, $watermerk, $xas, $yas, 0, 0, $watermerk_width, $watermerk_height, 50);


Staat die stukje ook in je script?
Zet dan op het laatst de 100 op 50
it works! Kei goed!

Thnx!

Maar weet je toevallig ook hoe ik de witte achtergrond helemaal transparant krijg zodat je deze niet meer ziet?
Je moet de achtergrond van de afbeelding transparant laten en dan opslaan als png.
Dus als jij je afbeelding opent in photoshop selecteer dan met je rechtermuis knop je eraser, Kies dan "Magic eraser tool".
Klik dan op de achtergrond zodat die verdwijnt. Sla het dan op als png.
ok dat heb ik gedaan maar resulteerd nog hetzelfde
heb inmiddels nog vanalles geprobeerd, maar het lukt maar niet.
blijf een wit vlak houden. Iemand een idee?
In photoshop heb je dat grijs/wit geblokte 'grid' als achtergrond in je afbeelding?

Dat betekend dat ie doorzichtig is, die opslaan als png, heb je dat in iedergeval goed.


en dan icm bovenstaand script, werkt nog steeds niet?
neej, heb het advies van van Ferdi R opgevolgd met photoshop. met de eraser. Dan Save as Web png-24 en transparancy aangevinkt.

script:


if(isset($_POST['submit']) && $_FILES['image']) {
	echo $_FILES['image']['name'] . '<br />';
	echo $_FILES['image']['size'] . '<br />';
	$path = '../../test/';
	if (is_uploaded_file($_FILES['image']['tmp_name'])){
		move_uploaded_file($_FILES['image']['tmp_name'], $path . $_FILES['image']['name']);
	}
	$watermerkUrl = '../../templates/watermerkPromtech.png';
	$watermerk = imagecreatefrompng($watermerkUrl);
	imagealphablending($watermerk, true);
	$watermerk_width = imagesx($watermerk);
    $watermerk_height = imagesy($watermerk);
    imagecreatetruecolor($watermerk_width, $watermerk_height);

	list($breedte, $hoogte, $image_type) = getimagesize($path . $_FILES['image']['name']);
	$image_ratio = $hoogte / $breedte;
	if ($image_ratio > 1) {
	$rs_breedte = '400';
    $rs_hoogte = $rs_breedte * $image_ratio;
    } else {
	$rs_breedte = '400';
    $rs_hoogte = $rs_breedte / $image_ratio;	
	}
        
	$resize = imagecreatetruecolor($rs_breedte, $rs_hoogte);
	$source = imagecreatefromjpeg($path . $_FILES['image']['name']);
	imagecopyresized($resize, $source, 0, 0, 0, 0, $rs_breedte, $rs_hoogte, $breedte, $hoogte);
	imagejpeg($resize, $path . $_FILES['image']['name']);
	
	$image = imagecreatefromjpeg($path . $_FILES['image']['name']);
    $size = getimagesize($path . $_FILES['image']['name']);
	
	$xas = $size[0] - $watermerk_width - 5;
    $yas = 5;

    imagecopymerge($image, $watermerk, $xas, $yas, 0, 0, $watermerk_width, $watermerk_height, 50);

    imagejpeg($image, $path . $_FILES['image']['name']);

    imagedestroy($image);
    imagedestroy($watermerk);
    
    echo '<img src="' . $path . $_FILES['image']['name'] . '">';


En het witte vlak blijft.

Idee?
Hmm, ik zie dat je hier functies voor jpeg gebruikt?

jpeg kent geen transparantie...
dat geeft niet als het gemerged wordt.

Het is de bedoeling uiteindelijk dat het toch een .jpg wordt.

In ieder geval moet je een afbeelding in PS maken die transparant is. je moet dat grid tevoor schijn halen van wit/grijze blokken. Hier teken je je watermerk in. En dit sla je uiteindelijk op.

Je krijgt dan een doorzichtige afbeelding met een logo oid. ( je watermerk). Deze kun je dan gebruiken om in je afbeeldingen te mergen.
dat heb ik gedaan merijn, maar dit werkt niet.

Reageren