Opening a PPM file Image

Hi everyone i have basic knowledge in opening a bitmap image and
showing it. I hope you can help me on how to read a PPM File format and
view it. Thanks

0
10/16/2006 10:22:09 AM
vc.mfc 33608 articles. 0 followers. Follow

13 Replies
978 Views

Similar Articles

[PageSpeed] 46

try OleLoadPicture
"dacky" <harvey.daclan@gmail.com> wrote in message 
news:1160994129.923299.221860@e3g2000cwe.googlegroups.com...
> Hi everyone i have basic knowledge in opening a bitmap image and
> showing it. I hope you can help me on how to read a PPM File format and
> view it. Thanks
> 


0
10/16/2006 10:41:24 AM
> Hi everyone i have basic knowledge in opening a bitmap image and
> showing it. I hope you can help me on how to read a PPM File format and
> view it. Thanks

Why not let the default reader do it by using ShellExecute?


---
Ajay

0
ajaykalra (6842)
10/16/2006 10:41:44 AM
hi  can you give me a little overview. I am just familiar on reading
and loading a bitmap. Is this the sam when we are dealing with other
file format such as PPM? thank you
Tony Thomas wrote:
> try OleLoadPicture
> "dacky" <harvey.daclan@gmail.com> wrote in message
> news:1160994129.923299.221860@e3g2000cwe.googlegroups.com...
> > Hi everyone i have basic knowledge in opening a bitmap image and
> > showing it. I hope you can help me on how to read a PPM File format and
> > view it. Thanks
> >

0
10/16/2006 1:25:49 PM
> hi  can you give me a little overview. I am just familiar on reading
> and loading a bitmap. Is this the sam when we are dealing with other
> file format such as PPM? thank you

Sorry I read it as PPT (power point). You should be able to use GDI+
for reading this and other types of graphics files.

---
Ajay

0
ajaykalra (6842)
10/16/2006 1:39:43 PM
how about for an algorithm?
Ajay Kalra wrote:
> > hi  can you give me a little overview. I am just familiar on reading
> > and loading a bitmap. Is this the sam when we are dealing with other
> > file format such as PPM? thank you
>
> Sorry I read it as PPT (power point). You should be able to use GDI+
> for reading this and other types of graphics files.
> 
> ---
> Ajay

0
10/17/2006 12:01:32 AM
dacky schrieb:
> how about for an algorithm?

See http://netpbm.sourceforge.net/doc/ppm.html

The algorithm could be:

open file
read file data
interpret file data and convert to bitmap
close file

You can't expect from the comunity to write your code and do your homework.
So can you specify what exactly your problems are with reading a PPM file?
Are you having problems with file I/O? Do you need to know how to convert the 
color values, or how to put pixels into a Windows bitmap?

You need to be more specific.

Norbert
0
nunterberg (207)
10/17/2006 7:12:14 AM
hi norbert that is exactly what i need to know. I need your expertice
regarding these. Base on my knowledge i know how to open a bitmap and
place it on handle then attach the bitmap and select it on the device
context and view it using bitblt funtion.

how can i read a PPM file by using CFile?
- how can i access P6?
- how can i access the width and length?

how can i interpret the ppm data and convert into bitmap?
how can i covert color values and put them into pixels into a window
bitmap?

thank you so much




Norbert Unterberg wrote:
> dacky schrieb:
> > how about for an algorithm?
>
> See http://netpbm.sourceforge.net/doc/ppm.html
>
> The algorithm could be:
>
> open file
> read file data
> interpret file data and convert to bitmap
> close file
>
> You can't expect from the comunity to write your code and do your homework.
> So can you specify what exactly your problems are with reading a PPM file?
> Are you having problems with file I/O? Do you need to know how to convert the
> color values, or how to put pixels into a Windows bitmap?
> 
> You need to be more specific.
> 
> Norbert

0
10/17/2006 8:04:27 AM
dacky wrote:

> how can i read a PPM file by using CFile?

Just create a CFile object and open it in binary mode for reading, and then 
start reading it. There is no magic in image files compared to other files. 
Files are just files, you can open and read them. It is then your task to 
interpret the values "by hand".

> - how can i access P6?
> - how can i access the width and length?

It seems that you need to make your hands dirty and do the byte fiddling 
yourself. You could do it by reading the file byte by byte, take the white space 
as separators, and parse the data fields in between.

Something like this:

bool ReadNext(CFile& f, CString &value)
{
     CStringA s;
     char ch;

     // Skip white space
     do
     {
         if (f.Read(&ch, 1) != 1)
             return false;   // EOF
     } while (isspace(ch));

     // Read next field until we get a white space
     do
     {
         // append char to string
         s += ch;

         // read next
         if (f.Read(&ch, 1) != 1)
         {
             // eof: must not happen here
             return false;
         }

     } while (!isspace(ch)); // white space: end of field

     value = s;
     return true;
}


bool LoadPPM(LPCTSTR filename)
{
     CFile f(filename,
         CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite);

     CString val;
     int width;
     int height;
     int maxval;

     if (!ReadNext(f, val) || val != "P6")
         return false;   // bad magic number

     if (!ReadNext(f, val) || (width = _ttoi(val)) == 0)
         return false;   // bad width

     if (!ReadNext(f, val) || (height = _ttoi(val)) == 0)
         return false;   // bad height

     if (!ReadNext(f, val) || (maxval = _ttoi(val)) == 0)
         return false;   // bad height

     // now read all the pixel values.
     int rowsize = width;
     if (maxval >= 256)
         rowsize *= 2;
     BYTE* pRow = new BYTE[rowsize];

     for (int row = 0; row < height; ++row)
     {
         f.Read(pRow, rowsize);
         BYTE *p;
         int col;
         for (col = 0, p = pRow; col < width; ++col)
         {
             unsigned value = *p++;
             if (maxval >= 256)
                 value = (value * 256) + *p++;

             // ... handle row pixel values here
         }
     }

     delete[] pRow;
     return true;
}


Note that the ReadNext function needs to be enhanced to detect and handle the 
'#' comment sign.

To create a bitmap from the raw pixel values, read about the functions 
CreateCompatibleDC, CreateCompatibleBitmap and SetDIBits.

About color conversion, I have no clue, there you need to do your homework on 
your own. How about Googling after "ITU-R Recommendation BT.709" or "CCIR 
Recommendation 709"?

Good Luck!

Norbert

0
nunterberg (207)
10/17/2006 10:03:12 AM
thank you so much norbert. Im gonna start working and will update you
on my progress. Thanks once again.
Norbert Unterberg wrote:
> dacky wrote:
>
> > how can i read a PPM file by using CFile?
>
> Just create a CFile object and open it in binary mode for reading, and then
> start reading it. There is no magic in image files compared to other files.
> Files are just files, you can open and read them. It is then your task to
> interpret the values "by hand".
>
> > - how can i access P6?
> > - how can i access the width and length?
>
> It seems that you need to make your hands dirty and do the byte fiddling
> yourself. You could do it by reading the file byte by byte, take the white space
> as separators, and parse the data fields in between.
>
> Something like this:
>
> bool ReadNext(CFile& f, CString &value)
> {
>      CStringA s;
>      char ch;
>
>      // Skip white space
>      do
>      {
>          if (f.Read(&ch, 1) != 1)
>              return false;   // EOF
>      } while (isspace(ch));
>
>      // Read next field until we get a white space
>      do
>      {
>          // append char to string
>          s += ch;
>
>          // read next
>          if (f.Read(&ch, 1) != 1)
>          {
>              // eof: must not happen here
>              return false;
>          }
>
>      } while (!isspace(ch)); // white space: end of field
>
>      value = s;
>      return true;
> }
>
>
> bool LoadPPM(LPCTSTR filename)
> {
>      CFile f(filename,
>          CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite);
>
>      CString val;
>      int width;
>      int height;
>      int maxval;
>
>      if (!ReadNext(f, val) || val != "P6")
>          return false;   // bad magic number
>
>      if (!ReadNext(f, val) || (width = _ttoi(val)) == 0)
>          return false;   // bad width
>
>      if (!ReadNext(f, val) || (height = _ttoi(val)) == 0)
>          return false;   // bad height
>
>      if (!ReadNext(f, val) || (maxval = _ttoi(val)) == 0)
>          return false;   // bad height
>
>      // now read all the pixel values.
>      int rowsize = width;
>      if (maxval >= 256)
>          rowsize *= 2;
>      BYTE* pRow = new BYTE[rowsize];
>
>      for (int row = 0; row < height; ++row)
>      {
>          f.Read(pRow, rowsize);
>          BYTE *p;
>          int col;
>          for (col = 0, p = pRow; col < width; ++col)
>          {
>              unsigned value = *p++;
>              if (maxval >= 256)
>                  value = (value * 256) + *p++;
>
>              // ... handle row pixel values here
>          }
>      }
>
>      delete[] pRow;
>      return true;
> }
>
>
> Note that the ReadNext function needs to be enhanced to detect and handle the
> '#' comment sign.
>
> To create a bitmap from the raw pixel values, read about the functions
> CreateCompatibleDC, CreateCompatibleBitmap and SetDIBits.
>
> About color conversion, I have no clue, there you need to do your homework on
> your own. How about Googling after "ITU-R Recommendation BT.709" or "CCIR
> Recommendation 709"?
> 
> Good Luck!
> 
> Norbert

0
10/17/2006 10:26:12 AM
> how about for an algorithm?

What algorithm?

---
Ajay

0
ajaykalra (6842)
10/17/2006 1:39:44 PM
hi Ajay the problem is solved by parsing the PPM file now i am facing
on how to dispaly the image using the device context. Do you have ideas
to share? thanks
Ajay Kalra wrote:
> > how about for an algorithm?
> 
> What algorithm?
> 
> ---
> Ajay

0
10/18/2006 2:28:04 AM
Hi norbert i modified the ReadNext function to handle the # sign:

bool ReadNext(CFile &f, CString &value)
{
	CString str;
	char ch;

	//skip white spaces
	do {
		if(f.Read(&ch, 1) != 1)
			return false;	//EOF
		if(ch == 35)	//check if it is # sign
			do {
				if(f.Read(&ch, 1) !=1)	//read until carriage return
					return false;
			}while(!isspace(ch) || ch == 32);

	} while(isspace(ch));

	//read next field until we get a white space
	do {
		//append  char to string
		str+=ch;
		//read next
		if(f.Read(&ch, 1) != 1) {
			return false;	//eof must not occur
		}

	}while(!isspace(ch)); //white space EOF

	value = str;
	return true;

}

now I am trying to study what im gonna do on the image data and display
them on the device context. I hope there are anyone who can share their
knowledge about this one. thanks to all

0
10/18/2006 2:31:19 AM
Once you've read the raw bits (making sure you have the RGB components in the right order;
P6 format is big-endian and x86s are little-endian), SetDIBits would be a place to start
looking.
				joe

On 17 Oct 2006 19:28:04 -0700, "dacky" <harvey.daclan@gmail.com> wrote:

>hi Ajay the problem is solved by parsing the PPM file now i am facing
>on how to dispaly the image using the device context. Do you have ideas
>to share? thanks
>Ajay Kalra wrote:
>> > how about for an algorithm?
>> 
>> What algorithm?
>> 
>> ---
>> Ajay
Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15973)
10/20/2006 2:23:14 AM
Reply:

Similar Artilces:

when i open an attachment it just shows a box i cannot open
Attachment, whether docs or pictures won't open. I can preview them inside the window pane, but then have to copy to word doc to print. Should be able to open attachment and then print just from there. Please help. It's like the Microsoft Picture manager is working strangely. ...

Opening a paramater form when open a report
I have a repor that takes date parameters from a seperate form.. As it is now I have to open the form put in the paramaters and then run the report which is based on a query... I would like to have the form pop up when I open the report and then close once once the report has run.. Help Please And thanks in advance bob On Wed, 15 Aug 2007 11:56:00 -0700, Bob wrote: > I have a repor that takes date parameters from a seperate form.. As it is now > I have to open the form put in the paramaters and then run the report which > is based on a query... > > I would like to ...

How do I get my MS Pub 2000 to open Pub files from Pub 2003?
i cannot get my Publisher 2000 to open files from Pub 2003....do i have to buy Pub 2003? or is there a solution that I can download? I have already disabled my antivirus and that didn't do anything.. also my files are not "read only". pls help. thx. Novice Novice <Novice@discussions.microsoft.com> was very recently heard to utter: > i cannot get my Publisher 2000 to open files from Pub 2003....do i > have to buy Pub 2003? or is there a solution that I can download? I > have already disabled my antivirus and that didn't do anything.. also > my files ...

Publisher 2000
After I open the Publisher 2000 program and attempt to open a file or create a new document, I get the message "Microsoft Publisher 2000 Version 6.0 has encoountered a problem and needs to close. WE are sorry for the inconvenience". I tried repairing the program and even reinstalling it, but that did not correct it. Suggestions? If you are trying to use Publisher on a network - don't it is not intended for a network Publisher files have to be worked on and saved to the local hard drive ONLY. -- Hi tom (tevanz@bellsouth.net), in the Microsoft� newsgroups you posted: ...

opening links in outlook
why i can not open links attached to my e-mails mike wrote: >why i can not open links attached to my e-mails > I think you did some mistake in typing so just do one thing first type the link in notepad and then direct copy and paste that in your mail. -- Stellar Information Systems Ltd. D18, Sector-33, Infocity Phase II, Gurgaon-122001 Phone : (0124) 326 6069, 432 6700 Website : http://www.stellarinfo.co.in/ What happens when you try? Do you get the error; "This operation has been cancelled due to restrictions in effect on this computer" See http://www.m...

Problem trying to open old money file
Hi, I am trying to open a four-month old money file, which was on my backup disk. It is a *.mny file, not a backup file. It was created using the same version of Money (2005) which I still use. When I start MS MONEY and try open my old data file, it tells my that it wants convert my file so it works with this version. (Not sure why as the file was created in this version of MS Money). Then when I try and carry out the conversion it gives the following error message. "Money cannot locate xxxx or cannot open it, possibly because it is a read-only file or you do not have...

OL 2003 .nk2 file clears on reboot
We have a client machine whose NK2 file is cleared on reboot. We have tried creating deleting the nk2 file to have OL create a new one, created a new OL profile with no luck. When we copied another users nk2 file to his directory and renamed it to his profile the data is picked up, but no new address are stored. outlook writes to the file when it closes - so it seems outlook is not closing correctly. is there a pda or an application using outlook data? if so, close it first. -- Diane Poremsky [MVP - Outlook] Author, Teach Yourself Outlook 2003 in 24 Hours Need Help with Common Tasks? h...

Running Virus Scan Slowing down opening files
3 minutes to open files in excel and word Are you using kaspersky virusscan? It is know for it. If yes please ask you administrator to exclude scan on harddisk or network files in the settings. -- Arien ------------------------------------------------------------------------ Arien's Profile: http://www.excelforum.com/member.php?action=getinfo&userid=1892 View this thread: http://www.excelforum.com/showthread.php?threadid=390878 All Virus Scanning can be stopped: If your using Norton Follow the below if you want to open documents much faster Open Norton Click on: Norton Interne...

amalgamating archive files
I have several archive files and I'd like to combine them into a single one. Is there a way to do this? Thanks. Howie ...

Email with tiny attachments open slow
Good Day All, I am using Exchange server 200 and Outlook 2003 mail client. I have started to experience with a single machine where all of a sudden reading emails with attachments of any size, even 6k, slows greatly. Just selecting the email item in the list takes at least 30 seconds before the lower pane shows the body of the selected item. No other client has the same problem even while this machine does. The problem seems to disappear at some point and then returns. The machine was connected to a 10Mbps switch so I changed to a 100Mbps switch and Event logs reveal nothing. I have ...

Need an open house sign in sheet
Need an open house sign in sheet That's interesting, but do you have a question about Publisher? -- James Bart: "According to creationism, there were no cavemen." Homer: "Well good riddance, their drawings sucked and they all looked like hippies!" "soozeeque" <soozeeque@discussions.microsoft.com> wrote in message news:1096B15B-9766-4573-9FC2-2053BEC1F34B@microsoft.com... > Need an open house sign in sheet I would suggest keeping it simple. Use a table for the visitors' information and maybe your real estate company's logo...

cannot open excel file from outlook
Excel 2007 cannot open document eithout first saving and opening thru excel Try to re-register Excel. Close Excel first and On the Windows Taskbar Start>Run "excel.exe /regserver"(no quotes)>OK. See the space between exe and /regserver You might have to designate a full path to excel.exe. In that case Start>Run "C:\yourpath\excel.exe" /regserver(quotes required)>OK Gord Dibben MS Excel MVP On Wed, 27 Jan 2010 11:38:12 -0800, Rick <Rick@discussions.microsoft.com> wrote: >Excel 2007 cannot open document eithout first savi...

opening links
Whenever I try to open a link in Outlook XP -- (Win XP Pro) it opens a "open with" prompt/box. Point it to the .exe for your preferred browser and click okay. --� Milly Staples [MVP - Outlook] Post all replies to the group to keep the discussion intact. Due to the Swen virus, all e-mails sent to my actual account will be deleted w/out reading. After searching google.groups.com and finding no answer anonymous@discussions.microsoft.com <anonymous@discussions.microsoft.com> asked: | Whenever I try to open a link in Outlook XP -- (Win XP | Pro) it opens a "open with&quo...

Update complete excel file online
Dear all, Hope you can help me with this problem. An excel file is updated on a daily basis and can only be found on the internet. The basic format of this file is always the same, the only changing aspect is the data. How, or if even possible, could I implement something (e.g. a button?) which automatically implements the updated sheet from the Internet. I am really looking forward to hearing from you. Thanks a lot and best regards, ...

SheetName (Application.Caller.Parent.Name) Forces Excel to Save File
I have a VBA function in Excel that I have been using for years that will display the sheet name in a cell. The VBA function is as follows: Function SheetName() As String Application.Volatile SheetName = Application.Caller.Parent.Name End Function This works great. However, I have found that if I am using this function if I open a worksheet and not change anything Excel will prompt me if I want to save the worksheet if I have not made any changes. Why is this happening and is there a way to prevent this from happening? Thanks, Mike The problem may be Application.Volitile If ...

Workbook always opens at a specific sheet and cell
I have a workbook consisting of many sheets. How do I make sure that everytime I open the work book, it would directly point to a specific sheet and cell? Hi put the following code in your workbook module (not in a standard module). sub workbook_open() me.worksheets("sheetx").activate end sub -- Regards Frank Kabel Frankfurt, Germany Zee wrote: > I have a workbook consisting of many sheets. How do I make sure that > everytime I open the work book, it would directly point to a specific > sheet and cell? methinks the original poster also wanted to activate a particu...

Best file recovery program?
I need a good file recovery program that will run both under Vista and Win 7. It needs to be able to salvage files both deleted and those lost because of disc errors. It also needs to be able to work with both internal and external hard discs, and all flavors of CD and DVD. Any recommendations? Most of the ones that allow you to download a trial have crippled to trial so much that it's really hard to judge them. Incidentally, I ran the free Recuva on a DVD-RW; I started it at 12:30 PM and at 5:30 AM (17 hours later) it showed 89% complete, and at 8:00 it had stopped with th...

using my Money 2005 file on two different computers
I use MS Money 2005 for my personal financle data. My Money file lives on my computer. I want to have my bookkeeper enter data into this file. I want to be able to have her work on the data from her computer which is networked to my computer. We have tried opening the file from her computer over the network with no sucess. We can see the file but the password does not work. We have tried burning the file to a CD but when we try to open the file from her computer we can get the password to work. The same thing that happens when we try to restore a backup on her computer. We tried usi...

unable to open your default mail folders...
I am running XP Pro and Office XP 2002. I currently use Outlook express on this PC but want to switch over to Outlook. When I try to open Outlook I get the message- Unable to open your default mail folders. Could not open item. Try again. Any ideas what's going on ??? Thanks in advance!!! -- Dennis Have you created a mail profile and installed your mail account(s)? -- Milly Staples [MVP - Outlook] Post all replies to the group to keep the discussion intact. ALWAYS post your Outlook version. How to ask a question: http://support.microsoft.com/KB/555375 After furious head scrat...

EXCEL Files open Slow
Why is it that when I open associated files for Office 2007 (.xlsx and ..docx) that they open SLOW (approx 15 seconds). However, if I have Excel or Word open and then attempt to open specific files, they open in a snap ? I have Office 2007, Vista Home Prsmium, a 2.4 Quad Core system, and four gigs of ram. Can someone please explain this and help me out ? Thanks. Hi, If I get your point - when you open the files in the Window Explorer (outside of Excel) it takes longer. Sometimes that if because Excel needs to launch, and that can be slower than just opening a file from inside of Excel...

Directory Open
Hi, I would like to create a Button which opens a dialog box, not to open a file but to open a directory. How should I do it? I thought of using CFileDialog but it does not allow for opening just a directory and not a file. I just want to read in the user selection of directory and the file name will be set in my application. Thanks! On Wed, 17 Dec 2003 22:15:36 -0800, Dave wrote: > I would like to create a Button which opens a dialog box, > not to open a file but to open a directory. > > How should I do it? > I thought of using CFileDialog but it does not allow for ...

ost file #2
My Exchange account was deleted from my Outlook today. All of my data is in the .ost file. Is there any way to recover the data into a .pst file? I am having trouble reinstalling the Exchange account. Any suggestions would be appreciated. Thanks. assuming that the ost is still attached to your profile, just start the computer with no network connection. Logon to your windows box like normal and then start Outlook. Go into offline mode and export to a pst. if the ost is no longer associated to a profile, copy it off somewhere for safe keeping and then try the following. create a n...

Opening a second mdb file from an open mdb file
I have two mdb files (one used for general department use and the other for detailed reporting). For ease of maintenance, I'd like to keep these mdb files separate, but I would like to have the ability to open the second mdb file from the general dept Access program. Is there an exisitng macro or VBA code I could use to accomplish this task? Thanks for your help. Sure, you can easily just shell out to another app: http://www.mvps.org/access/api/api0018.htm or even create a hyperlink that opens the file. Just create a label, go to the property sheet and enter a path in the hype...

Excel won't open in Office XP
Hi all, I have had a problem for the last few weeks opening up my Excel files When I try to open the files, a Window Installer dialouge box appear looking for the Office XP Professional Disk. My Office was preinstalle by my school, which is now complete. If I cancel the Window Installer consectutive times it leaves my new Excel document open and I can work Does anyone know what I need to configure to have Excel open up normall again ? Appreciate all the help I can get. Thanks, 'Kusty' (kusty@accesscomm.ca -- kust --------------------------------------------------------------------...

I do not have Excel on my computer. How do I open an attachment w.
How do I open an attachment in my e- mail with an XLS file, if I do not have Excel installed on my computer? My model is Windows XP Home. You can use the free viewer available from microsoft web site that only allows viewing. Or, you can find a copy of open office/star office that allows you to import excel files. -- Don Guillett SalesAid Software donaldb@281.com "Kathy" <Kathy@discussions.microsoft.com> wrote in message news:CF00A029-F488-4D1D-8257-B55F4E96A681@microsoft.com... > How do I open an attachment in my e- mail with an XLS file, if I do not have > Excel ins...