Re: Extracting graphics from notebook
- To: mathgroup at smc.vnet.net
- Subject: [mg115508] Re: Extracting graphics from notebook
- From: Albert Retey <awnl at gmx-topmail.de>
- Date: Thu, 13 Jan 2011 03:25:49 -0500 (EST)
- References: <iggq6a$4gt$1@smc.vnet.net> <ighgl8$ajk$1@smc.vnet.net> <igis8v$pnn$1@smc.vnet.net>
Am 12.01.2011 01:22, schrieb Chris Degnen: > On Jan 11, 11:58 am, Albert Retey <a... at gmx-topmail.de> wrote: >> Am 11.01.2011 06:35, schrieb Chris Degnen: >> >> >> >> >> >> >> >> >> >>> Hi, Can anyone suggest how I can address a graphics object from a >>> saved notebook. In the example below the most I can do is to >>> CellPrint the object, but I would like to set it to a variable. >> >>> dir = Directory[]; >> >>> nb1 = CreateDocument[Plot[Sin[x], {x, 0, 2 Pi}], >>> NotebookFileName -> dir <> "\\" <> "Sin2Pi.nb"]; >> >>> NotebookSave[nb1]; >>> NotebookClose[nb1]; >> >>> nb2 = NotebookOpen[dir <> "\\" <> "Sin2Pi.nb"]; >> >>> SelectionMove[nb2, Next, Cell] >> >>> CellPrint[NotebookRead[nb2]] >>> NotebookClose[nb2]; >> >> the NotebookRead returns the cell expression. You can extract the >> Graphics with something like this: >> >> content = NotebookRead[nb2]; >> >> Cases[content, GraphicsBox[args___] :> Graphics[args], Infinity][[1]] >> >> for more complicated cases you might need some more care, I don't know >> exactly which features of GraphicsBox (which is basically undocumented) >> are different to those of Graphics, there might e.g. be options that are >> only available for GraphicsBox or need different settings... >> >> hth, >> >> albert > > > Thanks Albert, I also found this works:- > > content = NotebookRead[nb2]; > > ToExpression[First[content]] > > ... and I think it might well be the better approach :-) albert