Seymour "Sy" Parrish (Robin Williams) is a photo technician at a one-hour photo in big-box store SavMart. He lives alone, has no friends or love life, and lives only for his work, which he considers a "vital service". His favorite customers are the Yorkin family, whose photos he has developed for many years. Over the years, he has grown obsessed with the family, enshrining them in his home with their photos that he secretly copies. However, as he is shy and socially inept, his attempts to become closer to the family are gently rebuffed.
Sy eventually manages to spark a connection with Nina Yorkin (Connie Nielsen) when he pretends to be interested in a book that he saw her purchase. Nina learns that Sy lives a solitary existence, something only her son Jake had considered previously. The next day, Sy is fired after the store's manager Bill (Gary Cole) discovers that Sy has printed many more prints than have been ordered and paid for, as well as for spacing out on the job, taking 90-minute lunch breaks, giving Jake a disposable camera free for his birthday, and for an altercation with the developing machine's maintenance person.
While inspecting his photos for the last time, Sy discovers that Will Yorkin (Michael Vartan) is having an extramarital affair, and his idyllic conception of the Yorkins as the perfect family is shattered. He surreptitiously places the photos of Will and his mistress, Maya Burson (Erin Daniels), into a packet of photos that Nina was scheduled to pick up. Sy follows and takes pictures, paparazzi style, of Bill's young daughter, and sends them to Bill as a threat. Yoshi, another SavMart employee, discovers the pictures and turns them over to Bill, leading to a police investigation against Sy.
While detectives Van Der Zee (Eriq La Salle) and Outerbridge (Clark Gregg) discover Sy's obsession, Sy confronts Will and Maya during a rendezvous in their hotel room. Armed with a knife and a camera, Sy forces the lovers to pose naked in sexual positions while he takes pictures. After the confrontation, Sy sees that the police have arrived at the hotel and he escapes through an emergency exit. The exit door trips an alarm and Van Der Zee pursues him while Outerbridge discovers Will and Maya, physically unharmed but emotionally traumatized. The police apprehend Sy in the parking garage. Upon being arrested, Sy claims, "I just took pictures."
When Van Der Zee asks Sy why he terrorized Will and Maya, Sy says that he can tell Van Der Zee is a good father who would never take "disgusting, sick, degrading pictures" of his children, suggesting that Sy's own father exploited him for child pornography. Sy then asks for the pictures that he took at the hotel, which Van Der Zee described as "evidence." They appear to be only shots of objects and furnishings of a hotel room. The film closes with an enigmatic family picture of the Yorkins with Will's arm around a smiling Sy.
Robin Williams as Seymour "Sy" Parrish
Michael Vartan as Will Yorkin
Connie Nielsen as Nina Yorkin
Gary Cole as Bill Owens, Manager
Eriq La Salle as Det. James Van Der Zee
Clark Gregg as Det. Paul Outerbridge
Paul H. Kim as Yoshi Araki
Erin Daniels as Maya Burson
Dylan Smith as Jake Yorkin
Christina Magargle as Mrs. von Unwerth
David Moreland as Mr. Siskind
Jim Rash as Amateur Porn Guy
Nick Searcy as Repairman