Avatar billede duno Nybegynder
31. august 2004 - 10:13 Der er 34 kommentarer og
2 løsninger

hvad gør jeg galt?

nedenstående kode burde virker, så jeg kan skrive en tekst på et billede, men jeg kan kun se billedet.

<%
  rem **********************************************************************
  rem * Instantiate the object
  rem **********************************************************************
  Set Image = Server.CreateObject("AspImage.Image")

  rem **********************************************************************
  rem * Set various font parameters
  rem **********************************************************************
  Image.FontColor = vbWhite
  Image.Italic = False
  Image.Bold = True
  Image.FontName = "Arial"
  Image.FontSize = 12
  Image.PadSize = 4
  Image.TextAlign = 6

  rem **********************************************************************
  rem * Calculate the size of the text info is and set the image to this size
  rem * (this has to be done since we want to fill the area with a gradient)
  rem * This demonstrates a multi-line text string
  rem **********************************************************************
  strMessage = "The Widget Factory" & vbCrLf & "123 Park Avenue" & _
              VbCrLf & "Anytown, USA 012345"

  Image.MaxX = Image.TextWidth (strMessage)
  Image.MaxY = Image.TextHeight (strMessage)

  rem **********************************************************************
  rem * Create a one way gradient that starts with Red and ends with White
  rem **********************************************************************
  Image.GradientOneWay vbWhite, vbBlue, 0

  rem **********************************************************************
  rem * Print our text to the image at the current X,Y position using 3D
  rem **********************************************************************
  Image.TextOut strMessage, Image.MaxX / 2 - Image.PadSize, Image.Y, true

  rem **********************************************************************
  rem * Set the filename and save
  rem *  NOTE: You should gen the filename dynamically for multiuser usage
  rem **********************************************************************
  Image.FileName = "d:\inetpub\wwwroot\images\txtz2.JPG"
  Image.SaveImage


  rem **********************************************************************
  rem * Write the <img src> tag out for the browser to pick up
  rem **********************************************************************
  Response.Write "<img src=""/images/txtz2.jpg""><br>"


  rem **********************************************************************
  rem * These properties give eval/registration information for the component
  rem **********************************************************************
  Response.Write "<p>Expires: " & Image.Expires
  Response.Write "<br>Version: " & Image.Version
  Response.Write "<br>Registered To: " & Image.RegisteredTo

  Set Image = nothing


%>


hvad er der galt? jeg har kaldt filen imagetekst.asp.

håber i kan hjælpe!!

Duno :-)
Avatar billede nythjem Nybegynder
31. august 2004 - 11:06 #1
Hej Duno!

Nu har jeg aldrig prøvet AspImage, men derimod persists.

Jeg kan ikke helt hitte ud af, om du overhovedet åbner billedet. Jeg kan se, at du gemmer det, men hvor kommer billedet fra, som skal overskrives? Mangler du ikke denne del?

Har du desuden kontrolleret, at den version, der ligger på serveren er den der er nødvendig for, at kunne overskrive et billede?
Avatar billede tommy_carstensen Nybegynder
04. september 2004 - 22:43 #2
Får du dit gemte billede frem i din browser? I så fald burde det være en smal sag at tilføje tekst til dit billede. Når du har svaret på mit spørgsmål, kan jeg hjælpe dig videre. Husk at tjekke om dine stier er korrekte...
Avatar billede duno Nybegynder
05. september 2004 - 01:00 #3
Jeg bliver desværre nød til at lukke spørgsmålet, da ovenstående kode var et skud i blinde, og løsningen er fundet på deres egen hjemmeside, jeg havde kastet mig over den forkerte version, den nye kan alt hvad jeg ønsker.

hvis i svare begge 2 så deler vi i porten

20 point til hver!

ellers mange tak for hjælpen!

Duno :-)
Avatar billede tommy_carstensen Nybegynder
05. september 2004 - 10:00 #4
Jeg vil helst ikke have points, når jeg ikke er kommet med et konstruktivt svar. Ellers tak :) Godt, at det virker nu!
Avatar billede nythjem Nybegynder
05. september 2004 - 17:22 #5
Men vi er glade for, at du har fået det til at virke :)
Avatar billede duno Nybegynder
05. september 2004 - 21:54 #6
ok tommy...

respekt for det!

en sidste mulighed..

Et bonus spørgsmål.. smider gerne 40 points oven i hatten

så svaret giver 100

samme kode "næsten" jeg vil gøre sådan at jeg kan ændre tekstfarven (Image.FontColor = vbWhite) jeg har så lavet et par radiobuttons

              <input type="radio" name="farve" id="vbBlack" value="vbBlack">
              <label for="vbBlack">sort</label>&nbsp;&nbsp;
              <input type="radio" name="farve" id="vbBlue" value="vbBlue">
              <label for="vbBlue">farve</label>2&nbsp;&nbsp;
              <input type="radio" name="farve" id="vbWhite" value="vbWhite">
              <label for="vbWhite">farve3</label><br>

og havde tænkt mig at hente dataen til

farver = replace(request.form("farve"), "'", "''")

og omskrive

(Image.FontColor = vbWhite) til (Image.FontColor = farver) men resultatet bliver en gang pludder... nemmelig - 16777215 (der skulle gerne stå vbBlack eller vbBlue.. osv

hvad betyder - 16777215 og hvad er grunden til at den ikke skriver vbBlack

håber i kan hjælpe
Avatar billede tommy_carstensen Nybegynder
06. september 2004 - 06:45 #7
Hvad er din form method og form action?
<form method="get/post???" action="???.asp">

Er du sikker på, at du ikke får 16777215 ved hvid og ikke ved sort? Alternativt kan du angive dine farver i RGB-format. RGB(&h##, &h##, &h##), hvor ## er hexadecimaler for styrken af hver af de tre farver.

Er du sikker på, at din replace er korrekt jf. http://www.w3schools.com/vbscript/func_replace.asp ? Måske derfor du får hvid og ikke sort...

Jeg er på igen i aften, hvis du ikke har fået det til at virke. Hvis (Når!!!) du får det til at virke, vil jeg meget gerne se koden, hvor du foretager farvevalg. Jeg skal nemlig lave noget lignende i næste uge. Lige nu vælger man farve på den forrige side i det, jeg har lavet.
Avatar billede tommy_carstensen Nybegynder
06. september 2004 - 06:49 #8
Fik ikke svaret så godt på dit spørgsmål om 16777215. Der er 256^3 = 16777216 farver. I VB er sort 0 og hvid er 16777215.
Avatar billede duno Nybegynder
06. september 2004 - 20:09 #9
Hej Jeg bruger post.. og action.. den har jeg slettet.. havde jo ikke brug for den... forbliver jo på samme side hele tiden..l

jeg tror jeg er kommet et skridt videre, nu skriver den ikke 16777215 mere.. nu skriver den det retmæssige.. altså vbBlack osv.. men se lige nedenfor

Jeg har nedenstående til rådighed

farver = replace(request.form("farve"), "'", "''")

Image.FontColor = farver

<input type="radio" name="farve" id="vbBlack" value="vbBlack">
<label for="vbBlack">sort</label>&nbsp;&nbsp;
<input type="radio" name="farve" id="vbBlue" value="vbBlue">
<label for="vbBlue">farve</label>2&nbsp;&nbsp;
<input type="radio" name="farve" id="vbWhite" value="vbWhite">
<label for="vbWhite">farve3</label><br>

<%  Response.Write farver %>

placeret i samme rækkefølge på siden, <%  Response.Write farver %> viser at "farver" indenholder teksten vbBlack, vbWhite, vbBlue, naturlgvis afhængig af hvilken knap jeg har trykket på (""GG""

altså har "farver" fået ønsket indhold og det eneste problem er at den ikke sender det videre til Image.FontColor = farver

hvad kan der være galt
Avatar billede tommy_carstensen Nybegynder
06. september 2004 - 22:06 #10
Jeg er ked af, at jeg ikke kan hjælpe dig over målstregen. Jeg er ikke en haj til VB-syntaks. Skal der ikke være apostroffer omkring tekststrenge? Prøv evt. at spørge fennec eller eagleeye... Om ikke andet kigger jeg på det i morgen (og løser det)!
Avatar billede thesurfer Nybegynder
07. september 2004 - 12:51 #11
Det kunne være at du skal konvertere indholdet til en streng, med CStr:

farver = CStr(replace(request.form("farve"), "'", ""))

eller

farver = chr(34) & replace(request.form("farve"), "'", "''") & chr(34)

Og jeg kan ikke helt se, hvorfor '-tegnet må indgå, som en del af navnet på farven..?
Avatar billede thesurfer Nybegynder
07. september 2004 - 12:54 #12
Avatar billede duno Nybegynder
07. september 2004 - 20:43 #13
nope.. desværre ingen virkning..

denne her

farver = CStr(replace(request.form("farve"), "'", ""))

intet andet end at vbBlack blev til "vbBlack" osv stadig ingen virkning på billedet.. Damn :-(

den anden kunne slet ikke vise siden, men god tanke!

Duno :-)
Avatar billede eagleeye Praktikant
09. september 2004 - 00:03 #14
er vbBlack en konstant i ASP? For så kan man ikke flytte requst.form over i farve så bliver det tekst.

if request.form("farve") = "vbBlack" then farve = vbBlack
Avatar billede eagleeye Praktikant
09. september 2004 - 00:09 #15
Ja nogle farver er konstanter. vbBlack, vbBlue, vbWrite mf. Når man har det i Request.Form er det en stregen som value er angive "vbBlack"

Hvis du gør sådan her:
<input type="radio" name="farve" id="vbBlack" value="<%=vbBlack%>">

Tror jeg godt du kan skrive, da man har lavt værdie for vbBlack i value og ikke teksten vbBlack:
farve=Request.Form("farve")
Avatar billede duno Nybegynder
09. september 2004 - 00:16 #16
så får jeg følgende fejl


Microsoft VBScript runtime error '800a000d'

Type mismatch: 'Image.FontColor'

/lz/MODIMG2.ASP, line 103

kode stumpen er her

  Image.ThreeDColor = &h80000011
  Image.Italic = False
  Image.Bold = True
if request.form("farve") = "vbBlack" then farver = vbBlack
if request.form("farve") = "vbwhite" then farver = vbWhite
if request.form("farve") = "vbblue" then farver = vbblue
Image.FontColor = farver
  Image.FontName = "Arial"
  Image.FontSize = 22
  Image.PadSize = 0
  Image.TextAlign = 6
Image.X = 195
Image.Y = 28
Image.MaxY = 100
Image.MaxX = 400

linie 103 - Image.FontColor = farver
Avatar billede eagleeye Praktikant
09. september 2004 - 00:22 #17
hvilken farve har du valgt?
du skal lige være opmærksom på if sætningen er vbwhite ikke lig vbWhite, så det en god ide med lcase omkring dem:
if lcase(request.form("farve")) = "vbwhite" then farver = vbWhite

Hvis du skriver:
Image.FontColor = vbBlack

får du så fejl

Prøv også at skrive:
Response.Write server.htmlencode(vbBlack) og se hvad de skriver?
Avatar billede eagleeye Praktikant
09. september 2004 - 00:23 #18
Hvis du skriver, får du så fejl?
Image.FontColor = &h00
Avatar billede tommy_carstensen Nybegynder
09. september 2004 - 00:23 #19
Du skal ændre
Image.FontColor = farver
til
Image.FontColor = farve
Avatar billede tommy_carstensen Nybegynder
09. september 2004 - 00:25 #20
Nej, du skal ikke. Det er mig, der er for træt. Lad være med at lytte til mig, før jeg har sovet. Undskyld.
Avatar billede eagleeye Praktikant
09. september 2004 - 00:30 #21
Ja det er også senge tid for mig :)

Det med at udskrive den kan engenlig være lidt ligemeget :)

Prøv at hardcode farven til vbBlack på disse to måder virker de?

1.:  Image.FontColor = vbBlack

2.:  Image.FontColor = &h00
Avatar billede tommy_carstensen Nybegynder
09. september 2004 - 00:32 #22
Bør 2 ikke være
Image.FontColor = RGB(&h00, &h00, &h00)
Avatar billede tommy_carstensen Nybegynder
09. september 2004 - 00:34 #23
Duno, du bør i øvrigt bruge elseif i stedet for if i linie 101 og 102. Desuden skal du slutte af med en end if..!
Avatar billede duno Nybegynder
09. september 2004 - 00:40 #24
det hele virker hvis jeg hardcoder farven.. men pointen er jo de uendelige muligheder :-)

jeg vil kigge på gode gamle else
er tilbage om 2 min
Avatar billede eagleeye Praktikant
09. september 2004 - 09:22 #25
Ja det rigtig, men hvis den siger forkert type må der være en årsag.

Virkerede både 1 og 2 eller kun 2?

Hvis både 1 og 2 virker så prøv:
farver = vbBlack
Image.FontColor = farver
Avatar billede duno Nybegynder
09. september 2004 - 09:44 #26
alt virker..

Jeg kan skrive

farver = vbBlack
Image.FontColor = farver

og farven bliver sort..
og jeg kan skrive

farver = vbwhite
Image.FontColor = farver

og farven bliver naturligvis hvid
Avatar billede eagleeye Praktikant
09. september 2004 - 16:41 #27
ok så vi tiltabge ved if sætningerne, endnu engang vil jeg lige nævne "vbwrite" er ikke lig "vbWrite" så lave dem sådan her:

if lcase(request.form("farve")) = "vbblack" then farver = vbBlack
if lcase(request.form("farve")) = "vbwhite" then farver = vbWhite
if lcase(request.form("farve")) = "vbblue" then farver = vbblue


og du har en form tag med method="post" du kan evt prøve at udskriver:
response.write request.Form("farve") og de den udskriver den valgte farve.
Avatar billede duno Nybegynder
09. september 2004 - 17:45 #28
hvis jeg bruger

if lcase(request.form("farve")) = "vbblack" then farver = vbBlack
if lcase(request.form("farve")) = "vbwhite" then farver = vbWhite
if lcase(request.form("farve")) = "vbblue" then farver = vbblue

får jeg følgende fejl,

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'Image.FontColor'

/linkzonen/MODIMG2.ASP, line 106


Image.FontColor = farver - 106

når jeg vælger sort, får jeg følgende

response.write request.Form("farve") = 0 .. (altså kun 0)

vælger jeg hvid får jeg 16777215
Avatar billede eagleeye Praktikant
09. september 2004 - 17:46 #29
Hvordan ser din form ud hvor man vælger farve?
Avatar billede duno Nybegynder
09. september 2004 - 18:03 #30
sådan her før :
            <select name="farve">
                  <option value="<%=vbWhite%>">hvid</option>
                  <option value="<%=vbBlack%>">Sort</option>

                </select>

lige nu:

            <select name="farve">
                  <option value="<%=vbwhite%>">hvid</option>
                  <option value="<%=vbblack%>">Sort</option>

                </select>

ingen forskel, har prøvet begge inden for de sidste 20 min.

jeg har skrottet blue.. en ting af gangen.. når det virker er det jo bare at tilføje.. :-)
Avatar billede eagleeye Praktikant
09. september 2004 - 18:05 #31
Ok så skal du ikke bruge if sætningen for der er væriden for farven sat ind og ikke teksten vbwrite.

Så prøv sådan her:

Image.FontColor = Request.Form("farve")
Avatar billede duno Nybegynder
09. september 2004 - 19:59 #32
Du er simpelthen for sej eagleeye, endnu engang kommer du med guldkornet.. det undre mig bare.. jeg mente ellers at jeg havde prøvet den version.. den ligger jo ligefor.. hmm.. ligegyldigt.. det virker.. og det er det vigtige :-)

men når jeg trykker på eksempelvis blue (jeps nu er blue tilføjet igen...) og trykker på formknappen så det hele opdatere, så hoppper min dropdownmenu tilbage til hvid ... billedeteksten bliver blå.. men er der ikke en måde at beholde den dropdown så der står navnet på den valgte farve???

det er jo lidt irreterende hvis man har en menu med 256 farver at man skal rulle ned i bunden hele tiden...

men eagleeye.. points er dine.. sender dem din vej så snart du har afgivet et svar som jeg kan betale.. ;-)
Avatar billede eagleeye Praktikant
09. september 2004 - 20:05 #33
For at vælge den som er valgt skal man havde sat selected ind i <option> tagen:

<option value="<%=vbwhite%>" <% if Request.Form("farve")=vbWrite then Response.write " selected " %>>hvid</option>

Så man kunne ligge farven i en variabel:

<% farve=Request.Form("farve") %>

Så bliver det lidt korter men ikke meget :)
<option value="<%=vbwhite%>" <% if farve=vbWrite then Response.write " selected " %>>hvid</option>
<option value="<%=vbblack%>" <% if farve=vbWrite then Response.write " selected " %>>Sort</option>
Avatar billede thesurfer Nybegynder
09. september 2004 - 21:55 #34
- Jeg er hoppet ud af spm'et.
Avatar billede duno Nybegynder
10. september 2004 - 12:08 #35
så er batalingen overført.. du skulle modtage det .... nu!

Men hvad nu hvis jeg ville lave det med radioknapper stedet for dropdownmenu???
sad lige og kiggede på det.. det ville jo være nemmere med radioknapper..
undskyld min uendedelige mængde spørgsmål.... :o)
Avatar billede eagleeye Praktikant
10. september 2004 - 16:25 #36
Radio kanpper giver samme problem der skal man på samme måde sætte hvilken som er valgt. Den som er valgt skal så havde " checked " på.
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