webForumDet fria alternativet

Placering av vattenstämpel (watermark)?

PHPur PHP

10 svar · 811 visningar · startad av Guldstrand

Medlem sedan juli 20041 271 inlägg
Frågan#1

Går det att med hjälp av ett formulär, själv bestämma var en vattenstämpel ska placeras på en bild?
(Ex. upp/höger, ner/vänster m.m.)

Håller på med ett mindre bildgalleri där användarna själva ska kunna välja var vattenstämpeln ska visas på bilden.
(Detta ska kunna väljas från samma formulär där man laddar upp bilden.)

Medlem sedan juni 20006 031 inlägg
#2

Är det något sånt här du har tänkt dig?

http://lenab.se/bire/test.php

Det är ju ingen filuppladdning, men du förstår nog hur du kan göra för att positionera vattenmärket.

Medlem sedan juli 20023 617 inlägg
#3

Det här med höger och vänster... ;)

Medlem sedan juni 20006 031 inlägg
#4

haha, blev visst lite fel. Får skylla på snabb hack. :e

/red Nu är det ändrat så höger är höger och vänster är vänster. (Uppe är fortfarande uppe och Nere är fortfarande nere) ;)

/red igen.
Bifogar all kod om någon har nytta av det.

Medlem sedan juli 20041 271 inlägg
#5

Pedda skrev:

Är det något sånt här du har tänkt dig?

http://lenab.se/bire/test.php

Det är ju ingen filuppladdning, men du förstår nog hur du kan göra för att positionera vattenmärket.

Jupp... precis SÅ menade jag.
Ska titta lite på detta. Stort tack!

P.s. Då jag sparar filnamnet och annan formulärdata i mysql, är det då även lämpligt att spara "placeringen" av vattenstämpeln i mysql? *dum fråga kanske*

Medlem sedan juni 20006 031 inlägg
#6

Jag skulle nog inte lägga på stämpeln varje gång bilden visas då bildmanipulation i php tar en del serverkraft.

Vid uppladdning av en bild skulle jag lägga på vattenstämpeln och sen spara den nya bilden.

Medlem sedan juli 20041 271 inlägg
#7

Pedda skrev:

Jag skulle nog inte lägga på stämpeln varje gång bilden visas då bildmanipulation i php tar en del serverkraft.

Vid uppladdning av en bild skulle jag lägga på vattenstämpeln och sen spara den nya bilden.

Hmm, ok... tänkte faktiskt inte på det. :r
Som jag har det nu, så sätts vattenstämpeln "on the fly".

(Blir alltså att ändra en hel del i scriptet för att minska ev. belastningar!?)

Medlem sedan juni 20006 031 inlägg
#8

Vet inte exakt hur mycket en sån här funktion kräver, men istället för att spara det i databasen så är det ju bättre att spara bilden som den ska vara.

Ha ett vanligt uppladdningsformulär där du har en select för val av placering och manipulera den uppladdade bilden och spara sen den färdiga bilden så slipper du tänka på vad dom har valt varje gång bilden ska visas.

Medlem sedan juli 20041 271 inlägg
#9

Håller på och pillar lite med detta script just nu, och behöver lite hjälp.
Hur löser jag det så att man även kan placera vattenstämpeln "centrerat uppe/nere"?

Följande finns nu:

// Marginaler
$marginalX = 10;
$marginalY = 10;

// Läs storlekarna på bilderna
$sizeX = imagesx($stamp);
$sizeY = imagesy($stamp);

// Räkna ut var vattenmärket ska placeras 
switch ($_GET['pos']) {
	case "uv":
		$posX = $marginalX;
		$posY = $marginalY;
		break;
	case "uh":
		$posX = imagesx($foto) - $sizeX - $marginalX;
		$posY = $marginalY;
		break;
	case "nv":
		$posX = $marginalX;
		$posY = imagesy($foto) - $sizeY - $marginalY;
		break;
	case "nh":
		$posX = imagesx($foto) - $sizeX - $marginalX;
		$posY = imagesy($foto) - $sizeY - $marginalY;
		break;
	default:
		$posX = imagesx($foto) - $sizeX - $marginalX;
		$posY = $marginalY;
		break;
}
imagecopy($foto, $stamp, $posX, $posY, 0, 0, imagesx($stamp), imagesy($stamp));
Medlem sedan juni 20006 031 inlägg
#10

Lägg till dessa i switch satsen

case "uc":
	$posX = (imagesx($foto) / 2) - ($sizeX / 2);
	$posY = $marginalY;
	break;
case "nc":
	$posX = (imagesx($foto) / 2) - ($sizeX / 2);
	$posY = imagesy($foto) - $sizeY - $marginalY;
	break;

uc är Uppe centrerat och nc är Nere centrerat

Medlem sedan sep. 2004828 inlägg
#11

Nu kör jag inte PHP, men nu gäller det inte tekniken.

Jag sparar originalbilden, sen genererar jag olika stora thumbs där jag sparar vattenstämpeln.
Om jag skulle vilja flytta vattenstämpeln så raderar jag bara mina thumbs, då dessa genereras on-the-fly om de inte finns.

133 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)