Avatar billede Slettet bruger
10. december 2010 - 21:37 Der er 22 kommentarer og
1 løsning

Vandmærket i asp driller

Jeg skal have et vandmærke lagt ovenpå et billede. Når emner står som solgt i databasen, skal der ligges et vandmærke hen over det eksisterende billede.

Jeg kan finde ud af det til en php side, men det kniber med asp.

Er der nogen der kan hjælpe med at få det omsat?






Jeg har i min fil følgende kode:

<%if RSslides("sold") = "-1" then%>
                                      <img src="watermark.asp?<%=(RSslides("img1").Value)%>" />
                                      <%else%>
                                    <%if not RSslides("img1") = "" then%>
                                    <img src="<%=(RSslides("img1").Value)%>" width="200" border="1" />
                                    <%end if%>
                                    <%if RSslides("sold") = "-1" then%>
                                      <img src="images/layout/sold.png" />
                                      <%end if%>
                                        <%end if%>






I roden sammen med denne fil, har jeg
sold.png og
watermark.asp, som ikke er korrekt, da den er lavet ud fra php.



Watermark.asp ser sådan ud:

<%
header('content-type: image/jpeg');
$watermark = imagecreatefrompng('sold.png');
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$image = imagecreatefromjpeg($_GET['src']);
$size = getimagesize($_GET['src']);
$dest_x = $size[0] - $watermark_width - 5;
$dest_y = $size[1] - $watermark_height - 5;
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);
%>
Avatar billede keysersoze Guru
10. december 2010 - 21:57 #1
ASP kan i sig selv ikke finde ud af at arbejde med billeder - dertil er der behov for et image-komponent. Hvis du finder ud af hvilket komponent dit webhotel understøtter kan du relativt let omskrive din kode ud fra komponentens dokumentation/eksempler.
Avatar billede Slettet bruger
10. december 2010 - 22:05 #2
Hmmm jow - og det er hvad jeg skal kigge efter?
Avatar billede keysersoze Guru
10. december 2010 - 22:41 #3
aspimage eller aspjpeg fx
Avatar billede Slettet bruger
10. december 2010 - 22:53 #4
Det ved jeg godt nok ikke, er hos surftown. Synes ikkejeg kan se det nogen steder.
Avatar billede Slettet bruger
10. december 2010 - 22:54 #5
Dimac w3 Image 2.0
Avatar billede keysersoze Guru
10. december 2010 - 23:12 #6
Avatar billede Slettet bruger
10. december 2010 - 23:16 #7
Sjovt du skriver den - var lige den jeg også havde fundet frem til :)

Men mange tak alligevel.
Avatar billede keysersoze Guru
11. december 2010 - 17:01 #8
det var godt - jeg lægger et svar :)
Avatar billede Slettet bruger
12. december 2010 - 17:21 #9
Der var jeg lidt for hurtig. Har virkelig ihærdigt forsøgt, men kan ikke få koden sat ordentlig ind nogen steder. Sætter jeg den ind på siden med <% %> rundt om, eller laver jeg en ny fil og så inkluderer den i siden?- Og er det det sidste, hvordan gør jeg så det?
Avatar billede Slettet bruger
12. december 2010 - 17:26 #10
Lige nu har jeg blot lavet det som baggrund, men giver problemer med billeder der er i forskellige størrelser. Men koden ser sådan ud, og det er den jeg skal bruge til ovenstående. (altså det med baggrund skal slettes)

<%if RSslides("sold") = "-1" then%>
                                        <img style="background-inages:url(<%=(RSslides("img1").Value)%>); background-repeat:no-repeat" alt="solgt" src="sold.png" width="200" border="1"/>
                                    <%ElseIf not RSslides("img1") = "" then%>
                                        <img src="<%=(RSslides("img1").Value)%>" width="200" border="1"  />
                                    <%end if%>
Avatar billede keysersoze Guru
12. december 2010 - 17:54 #11
Der skal altid <% %> omkring ASP og det skal også ligge som en fil - altså helt som i din kode i spørgsmålet. Skal billedet gennem komponenten skal du kalde asp-filen - også helt som i dit eksempel i spørgsmålet, og det gælder uanset om det er et billedet som src i et img-tag eller som background-image i din style-attribut.
Avatar billede Slettet bruger
12. december 2010 - 17:59 #12
Tror du misforstår mig.

Jeg bruger baggrundsløsningen nu som:

<%if RSslides("sold") = "-1" then%>
                                        <img style="background-inages:url(<%=(RSslides("img1").Value)%>); background-repeat:no-repeat" alt="solgt" src="sold.png" width="200" border="1"/>

Men den er ikke optimal, så derfor ville jeg vælge den anden som du også foreslog. Jeg kan jo fint få koden frem der, men problemet er, hvordan jeg får det sat ind, så det også virker.
Siden = default.asp, hvor billedet med solgt skal vises, - skal det ind der, eller laves i en ekstern fil (f.eks. watermark.asp) og så sættes ind som kode i default filen?
Avatar billede keysersoze Guru
12. december 2010 - 18:07 #13
der skal laves en ekstern fil som du så benytter i default.asp.
Avatar billede Slettet bruger
12. december 2010 - 20:50 #14
Jeg har lavet den fil, men kan så ikke få det sat ind i default.asp, så den ved hvad den skal.
Avatar billede keysersoze Guru
12. december 2010 - 22:07 #15
på præcis samme måde som var det PHP og som du mere eller mindre allerede gør i dit spørgsmål? kom med lidt kode ellers er det umuligt at se hvad du gør galt.
Avatar billede Slettet bruger
12. december 2010 - 22:13 #16
I default.asp er indsat:

<%if RSslides("sold") = "-1" then%>
                                      <img src="watermark.asp?<%=(RSslides("img1").Value)%>" />
                                      <%else%>
                                    <%if not RSslides("img1") = "" then%>
                                    <img src="<%=(RSslides("img1").Value)%>" width="200" border="1" />
                                    <%end if%>
                                   
                                        <%end if%>





watermark.asp ser sådan ud:


<%
var source;
var destination;
var x;
var y;

source = Request.Item("src");
destination = Request.Item("dest");
x = Request.Item("x");
y = Request.Item("y");

if ((!source) || (source == null))
source = "sold.png";

if ((!destination) || (destination == null))
destination = "images/slideimages/Billede-001.jpg";

var errormsg = new String("");
errormsg = Logo();

// Check if errors occured
if (errormsg != "")
DisplayError(errormsg);

// Make the image
function Logo()
{
try
{
  var srcobj;
  var destobj;
  var top;
  var left;
  var path;

  // Fix path
path = "http://husdyrformidling.dk/";

  srcobj = Server.CreateObject("W3Image.Image");
  destobj = Server.CreateObject("W3Image.Image");

  // Load the source image
  if (srcobj.LoadImageFromUrl(path + source) == false)
  {
  // Do your error handling here...
  return "Error when loading source image '" + source + "'. Path " + path + source + " is probably invalid.";
  }

  // Load the destination image
  if (destobj.LoadImageFromUrl(path + destination) == false)
  {
  // Do your error handling here...
  return "Error when loading destination image '" + destination + "'. Path " + path + destination + " is probably invalid.";
  }

  // Add images together with StretchBlt
  srcobj.StretchBltExt(destobj, x, y, srcobj.width, srcobj.height, 0, 0, srcobj.width, srcobj.height, "transparent");


  if (destobj.StreamImage(Response, "JPG", 24) == false )
  {
  // Do your error handling here...
  return "Error when streaming image!";
  }

  // Success
  return "";
}
catch (err)
{
  // Do your error handling here...
  return "Error: " + (err.number & 0xFFFF) + " - " + err.description + ".";
}
}

// Example of a error handler - Displaying the error as a image
function DisplayError(msgcode)
{
// Create an error image
var errorimage = Server.CreateObject("W3Image.Image");
errorimage.CreateEmptySurface(1,1);

// Create and select the font
var fontobj = errorimage.CreateFont("Tahoma",24,0,"normal",0,0x000000,false,false,true);
errorimage.SetFont(fontobj);

// Get size of the error message
var width = errorimage.GetTextWidth(msgcode);
var height = errorimage.GetTextHeight(msgcode);

// Create a surface as large as the error message
errorimage.CreateEmptySurface(width,height);

// Select the font again (font is deselected when creating a new surface)
errorimage.SetFont(fontobj);

// Write the error message
errorimage.DrawText(msgcode,0,0);

// Stream the image containing the error message
errorimage.StreamImage(Response, "JPG", 24);
}%>
Avatar billede keysersoze Guru
12. december 2010 - 23:51 #17
Du bliver nødt til at kigge på hvilken fejl der opstår på din side - det kan du gøre ved at kalde ASP-siden direkte i browseren med parameter som var det i din default-fil og så sørge for at du får vist fejl; funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl".

Du kan i hvert fald under ingen omstændigheder bruge koden direkte fra eksemplet - eksemplet er jo bygget op specifikt til deres behov, dvs at der er nogle formfelter, som styrer placering af ikonet osv. Derfor er du nødt til at omskrive det så det passer til dit behov.
Avatar billede Slettet bruger
13. december 2010 - 13:42 #18
Nu bliver det lidt for svært for mig, det forstår jeg ikke så meget af.

Fortsætter indtil videre med mit baggrund, selvom det ikke er godt nok. Det virker fint, bortset fra hvis baggrundsbiledet er for stort, så ses der kun et snip af billedet. Og jeg kan ikke gardere mig imod at der bliver lagt forskellige størrelser billeder ind.

Så havde man blot kunnet sætte str. på baggrund, var det perfekt.
Avatar billede keysersoze Guru
13. december 2010 - 17:36 #19
jeg har desværre ikke noget færdigt kode til det jeg kan give dig, men kan du PHP som du giver udtryk for kræver det ikke særlig meget at få til at fungere i ASP - det er stort set kun det fra den nederste trediedel der er relevant, og støder du ind i problemer i dit forsøg så spørg endelig.
Avatar billede Slettet bruger
13. december 2010 - 17:44 #20
Undskyld, men jeg er virkelig gået total død i det. Kan slet ikke se noget lige nu. Men håber der er nogen der kan se det, og hjælpe mig videre igen.
Avatar billede keysersoze Guru
13. december 2010 - 19:27 #21
hvis du slet ikke forsøger tror jeg ikke helt på dine PHP-evner, for så forskelligt fra hinanden er det nu ikke - jeg kan/vil ikke lave det for dig, men tilbuddet om hjælp hvis du selv forsøger står selvfølgelig stadig ved magt.
Avatar billede Slettet bruger
13. december 2010 - 19:31 #22
For det første har jeg aldrig sagt jeg er ekspert i php og for det andet ber jeg ikke om at få et færdigt resultat. Jeg finder ud af det. Tak.
Avatar billede keysersoze Guru
13. december 2010 - 20:18 #23
jeg kan ikke udlede andet af det end at du ønsker et færdigt resultat når jeg ikke kan se hvad du har forsøgt, men jeg kan selvfølgelig tage fejl - jeg siger heller ikke at du er PHP ekspert, men bortset fra lidt syntaks er den PHP kode du har brygget sammen meget lig hvad ASP'en ville være og du har et næsten færdigt resultat i ASP med gode kommentarer så jeg forstod bare ikke hvorfor du gik i stå.

... men mine kommentarer var åbenbart så uhyggelige at du valgte at nedlægge din profil og det virker jo meget voksent :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester