LoadBrush() from data$ ????

Find quick help here to get you started with Hollywood
Post Reply
User avatar
Tuxedo
Posts: 225
Joined: Sun Feb 14, 2010 12:41 pm

LoadBrush() from data$ ????

Post by Tuxedo » Tue Mar 23, 2010 1:28 am

Hi ALL!
I wrote a simple routine that extrat the thumbs from Exif header of JPEG images...
Now my question was:
There's a way to load directly the brush from the data extracted without write it back to disk before?
To exlpain it better:

- I have:

data$ = ReadString(1, length)

Now in data$ I've my little jpeg...
My routine continues in that way:

OpenFile(2, "RAM:pippo.jpg", #MODE_WRITE)
WriteString(2, data$, length)
CloseFile(2)
Thumb = LoadBrush(Nil, "RAM:pippo.jpg")

[...]

In that way it works perfectly but I've to load it after write it...
I think that now I've a passage more than what I really need...I'm wrong?

PS Naturally if I've to write it I will use T: to do that...

Sorry for stupid questions!
Simone"Tuxedo"Monsignori, Perugia, ITALY.

User avatar
Allanon
Posts: 461
Joined: Sun Feb 14, 2010 7:53 pm
Location: Italy
Contact:

Re: LoadBrush() from data$ ????

Post by Allanon » Tue Mar 23, 2010 3:25 pm

Why not to try VirtualFile features for this purpose, I think it should be the right answer to your problem ;)

Regards,
Allanon
----------------------------
[Allanon] Fabio Falcucci
AMC - Creative Development // Docs Site // Support Forum
Support me on Patreon for Hollywood libraries!

User avatar
Tuxedo
Posts: 225
Joined: Sun Feb 14, 2010 12:41 pm

Re: LoadBrush() from data$ ????

Post by Tuxedo » Tue Mar 23, 2010 8:45 pm

Hi!
Thank you for the reply but...
From the Hollywood guide explanation, the VirtualFile function will put file in another big one file...
I simply want(if possible(in some way) to load the file directly from my "data$" var withou open/write/close and than reload it...
I also check the MEM functions but it seems to me that was the same thing than with ReadString() function(Maybe more slower too since if I use memory functions have to do more passages to get the ram:xxx.jpg file wrote...)
Maybe I'm explained worng in the last post...sorry! My engllish wasnt so good! :P
Simone"Tuxedo"Monsignori, Perugia, ITALY.

User avatar
Allanon
Posts: 461
Joined: Sun Feb 14, 2010 7:53 pm
Location: Italy
Contact:

Re: LoadBrush() from data$ ????

Post by Allanon » Tue Mar 23, 2010 9:02 pm

No Tuxedo you have explained well, but I was thinking that you could define a virtual file representing the thumbnail, then you can load it as a brush, just to explain things suppose your image has the following format (just inventing, I don't know where the thumbs are stored inside jpg images):

Image.jpg
000000 - 150000 Image data
150001 - 165000 thumbnail data
165001 - 175000 Other data

you have to do:

Code: Select all

my_thumb = DefineVirtualFile("Image.jpg", 150001, 15000, "thumbnail.jpg")
LoadBrush(1, my_thumb) 
If you have the offset and the length of the thumbnails is really simple to define and read the thumbnails inside a file!
----------------------------
[Allanon] Fabio Falcucci
AMC - Creative Development // Docs Site // Support Forum
Support me on Patreon for Hollywood libraries!

User avatar
Tuxedo
Posts: 225
Joined: Sun Feb 14, 2010 12:41 pm

Re: LoadBrush() from data$ ????

Post by Tuxedo » Tue Mar 23, 2010 9:39 pm

Whooops!
I'm REALLY a NEWBE! I miss completely that nice VirtualFile function!
It works perfectly! And was exactly the elegant code I'm looking for(no weird and non usefull fiels around the system!)!
However I've done some speed comparison (with a timer) and no relevant differences was revealed...
Any Exif jpeg file (from 0.3 to 10 Mpx) tooks from 8 to 50 milliseconds to be scanned and have the thumb displayed...and from old code to the new no relevant and concrete differences(I've done 3 test for file for every code...), sometime the old was faster sometimes the new...so pratically have the same speed :)
Maybe a real difference may occur on AmigaOS3.x on classic hw...but that wasnt the real problem I think...
So all was really fast :)

Thank you again for the help!
Simone"Tuxedo"Monsignori, Perugia, ITALY.

Post Reply