Avatar billede webster Nybegynder
19. april 2000 - 22:34 Der er 6 kommentarer og
3 løsninger

Billedfil

Hej

Kunne det tænkes, at der er en her på eksperten der kunne hjælpe mig? Mit problem er at jeg som tidliggere nævnt har lavet et DTP program. Som et "ægte" DTP program, skal man selvfølgelig også kunne bruge billeder. Indtil nu har jeg gemt dem i hver sin fil, med en ensartet navn. Jeg har tænkt på om det kan lade sig gøre at lave en fil indeholdende flere billeder, hvor man så kan loade hver enkelt billede, eller endnu bedre, kunne lægge billederne ind i den samme fil som teksten og opsætningsoplysningerne ligger i?
Avatar billede tdaugaard Nybegynder
19. april 2000 - 23:14 #1
Altså, du kunne jo lave en slags group-fil med dit eget binære fil format. Det ville nok være det nemmeste.

Jeg programmerer selv i VB 5.0 Enterprise så hvis du vil have hjælp er du velkommen til at skrive til mig på thomas@tdaugaard.dk.

Det er lidt svært at vide hvad du skal bruge, eller hvad du har brug for da du ikke siger noget om hvorledes billederne er gemt. Om det er dit eget filformat eller et i forevejen eksisterende format.

Avatar billede ultik Nybegynder
19. april 2000 - 23:15 #2
Det kan sagtens lade sig gøre. Måske skulle du kigge efter .PDF formatet et sted på internettet, f.eks. :

http://www.wotsit.org

Det bruger både billeder tekst, og mere.

Alternativt kan du jo også vende dig til HTML formatet, på den måde får du selvfølgelig flere filer, men muligheden for at publisere til internettet er efterhånden meget værdsat. Så kan du ja bare "opfinde" dine egne HTML tags, hvis dit program skal bruge noget HTML ikke understøtter. Eller m.h.t. at bruge billeder og tekst sammen, kan du jo bare "ændre" din definition af img tag'et, så man skal bruge <img> og </img> og det der så står imellem disse to, er de data der originalt lå i billedet. Så kunne man så lave en attrib til img, der angav formatet af billedet, så har du også en mulighed for at dine brugere kan eksportere billederne igen, uden alt for meget fiksfakser. Et sådan img tag kunne se sådan ud :

<img type="compuserve/gif" height="x" width="x" posx="pX" posy="pY"> ( billeddata her ) </img>

Håber du kan bruge det.

Med venlig hilsen
Ulrik Jensen
ulrik@qcom.dk
http://www.qcom.dk
Avatar billede webster Nybegynder
19. april 2000 - 23:45 #3
Vel. Indtil nu har jeg bare brugt Picture boksen, så der har været et par formater at vælge imellem. Jeg regner med at størtedelen af billederne vil være i jpg format, og ellers er det ikke svært at lave en format-konverter.
Avatar billede webster Nybegynder
19. april 2000 - 23:46 #4
> tdaugaard
har du et kode eksempel på en group-fil?
Avatar billede tdaugaard Nybegynder
20. april 2000 - 00:56 #5
<< webster >>

Man kan lave et fil format selv, hvor du f.eks. til at starte med PUTter en variable af typen INTEGER med antallet af billeder i filen.

put #1,1, intTotalFiles

derefter kan du f.eks, lave en TYPE der definere en HEADER for hvert billede, hvor du f.eks. kan have orginalt filnavn, beskrivelse etc.

Det vil nok tage lidt tid at lave, men det kan laves.
Avatar billede mix Nybegynder
27. april 2000 - 15:47 #6
Hmmm...
Her er en ide.
opret et Module
Skriv
Type INDHOLD
Billede(1 to 100) as Picture
Tekst(1 to 100) as String
End Type
Skriv i Formen.

Dim Hent as Indhold

Private Sub Command1_Click()
'Sådan opretter du filen.

Hent.Billede(1) = Image1.Picture ' eller loadpicture("sti\filenavn")
Tekst(1) = text1.text

Open "filenavn" for Binary as #1
Put#1,,Hent
Close#1

End Sub

'Sådan henter du dem igen.
Private Sub Command2_Click()
Open "filenavn" for Birnay as #1
Hent = Space$(Lof(1))
Get#1,,Hent
Close#1
Image1.Picture = Hent.Billede(1)
Text1.Text = Tekst(1)
End Sub


Nu har jeg ikke afprøvet den, men jeg tror nok det kan lade sig gøre sådan.
Ellers så skriv til mig på Mix@post6.tele.dk
Så skal jeg nok prøve at lave et eksemble.

Hilsen
M.I.X
Avatar billede tdaugaard Nybegynder
27. april 2000 - 16:06 #7
<< M.I.X >>

Tekst(1) skulle nok være Hent.Tekst(1)

Hent = Space$(Lof(1)) tror jeg ikke virker så godt.
Brug istedet Erase Hent.

Erase resetter variablens data.
Avatar billede mix Nybegynder
27. april 2000 - 21:22 #8
tdaugaard>>
du har ret med henblik på Teskt(1).
Hvis man viæl være helt sikker så skal du bruge dem begge .
Erase Hent
Hent = Space$(Lof(1))
men Hent = Space$(Lof(1)) øger også hastigheden på progvrammet hvis det er størrer filer du åbner.

M.I.X
Avatar billede tdaugaard Nybegynder
27. april 2000 - 22:39 #9
<< M.I.X >>

Hvis du bruger "Erase Hent" er du HELT sikkert på at der ikke er så meget som en byte tilbage af arrayet. Og med Space$() måden SLETTER du ikke de gamle data, men erstatter dem blot med CHR$(32) (mellemrum). Så hvis du, når du lukker programmet skriver

Hent = Space$(Lof(1))

så vil du ikke frigøre den hukommelse der blev brugt af Hent arrayet, men derimod bare overskrive den.
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