Writing into a .ppm file in VHDL

Moderator (Company: Titel) #3350744
Rate this post
useful
not useful
Nitish Kv wrote:
> I want to write into a .ppm file using RGB data as inputs.
It looks fairly easy:
http://orion.math.iastate.edu/burkardt/data/ppm/ppm.html
You will need a little bit textio and then you're done.

> Has anybody got any VHDL code for reference?
What about you trying it on your own. And when an actual question occurs 
you will find help here. But no one is intended to do all of your 
homework...
Moderator (Company: Titel) #3350902
Rate this post
useful
not useful
jen opt wrote:
> I am pretty sure he has a RGB sensor input in real and want's to store
> the data.
I had that thought for the shortest possible time span. But the task to 
do this completely in hardware (=VHDL) sounds totally unrealistic. And 
so my second thought is that it must be for simulation only.

But lets wait for the answer...
OP (Company: Student) #3389993
Rate this post
useful
not useful
Hi
Thank you for your response.
 I tried writing a file with rgb data in hex format. But when written 
the image is wrong . I just get a grayscale image.

When I tried opening a random .ppm image in text format it is not in
human readable format.

I am still trying to find in what format the data is written into the
file. (binary and hex did not work).

Please help.

Thanks in advance

Code:
  ppm_file : process
  file ppm_file : TEXT ;
  variable l_handle : line ;
  variable P6    : string(1 to 2 ) := "P6";
  variable name  : string(1 to 17) := "# ppm image";
  variable size  : string (1 to 7) := "800 480";
  variable space : string (1 to 1) := " ";
  variable scope : string (1 to 3) := "255";
  VARIABLE char : integer:= 0;
  begin

    file_open(ppm_file,"image_ppm",write_mode);

        write(l_handle,P6);
        writeline(ppm_file,l_handle);
        write(l_handle,name);
        writeline(ppm_file,l_handle);
        write(l_handle,size);
        writeline(ppm_file,l_handle);
        write(l_handle,scope);
        writeline(ppm_file,l_handle);

    loop
      wait until(rising_edge(clk));

         write(l_handle, (to_hstr(red))); write(l_handle, space);
         write(l_handle, (to_hstr(green))); write(l_handle, space);
         write(l_handle, (to_hstr(blue)));write(l_handle, space);

         writeline(ppm_file,l_handle);
    end loop ;
    file_close(ppm_file);
  end process ppm_file;
(Company: http://www.nkavvadias.com) #3404093
Rate this post
useful
not useful
Hi,

I would suggest having a look to Martin J. Thompson's "image processing 
primitives". He has a good and generic approach for reading and writing 
ASCII PGM images. It should be somewhere on github, google for it.

I have built upon this work, in order to support PBM, PGM and PPM (if i 
recall correctly both binary and ASCII).

Let me know if you are interested in my version, it is on sale.


Best regards
Nikolaos Kavvadias
http://www.nkavvadias.com

Reply

Please log in before posting.

or

Log in with Google account

Registration is free and takes only a minute.

Register now