Last year, I bought a Gold Lantern digital picture frame. I also bought a 2gb SD card on which I dropped over 2000 pictures. The frame worked well cycling through all the pictures—for about three months, anyway, at which point it basically blew up (the brightness of the picture dimmed to almost total blackness, the frame smelled of burnt rubber, a thin coil of smoke rose from the AC adapter, etc.). I replaced the AC adapter with another one from the company, but the problems persisted, so I’m pretty sure it was the frame, not the adapter.
Out of frustration, I threw away the Gold Lantern frame and bought a new Nextar digital frame. I plugged in the frame, slipped in the 2gb SD card I used successfully in the old frame, turned on this new one and…nothing. The thing basically just hourglassed as, I suspect, it was attempting to load the pictures. Later, my wife tried her 1gb SD card that she uses in her digital frame at work and the Nextar frame played it with no problem. Thinking then that maybe the frame couldn’t handle a large quantity of files, I made dramatic reductions in the number of photos on my 2gb card all to no avail until eventually I slashed the number down to 20 pictures—which the [expletive deleted] frame happily played.
One idea I had during my futile iterations of edits to my card was that maybe the frame was having a problem rendering my pictures down to its 640 x 480 pixel screen size. Most of my pictures were taken by my 8mb point-and-shoot camera resulting in 1+ Mb, 2272x1704 JPG files. I thought that if I could resize my photos down to approximately 640x480, I could ease some of the burden on the frame’s processor—the files themselves would be smaller in size and little-to-no work would need to be done re-rendering the photos to the smaller size of the frame. Normally when I resize a photo, I do it by hand in some editor. I was not about to resize over 2000 photos, so what could I do?
PowerShell, baby! I wrote the following script to shrink all photos in a given directory, with due credit to this post, this one, and this one:
|
[void][reflection.assembly]::loadwithpartialname("system.drawing")
$imageDir = "C:\data_files\personal\other\test"
$destDir = $imageDir + "\shrunk\"
$flipType = [system.drawing.rotatefliptype]'Rotate180FlipNone'
if (!(Test-Path -path $destDir))
{
New-Item $destDir -type directory
}
gci $imageDir *.jpg | % {
"processing " + $_.FullName + "..."
$file = [System.Drawing.Image]::FromFile($_.FullName)
$newFileName = [IO.Path]::GetFileNameWithoutExtension($_) + "_tn" + $_.Extension
$file.RotateFlip($flipType)
$file.RotateFlip($flipType)
#I want to reduce the image width to 640, so I need to calculate the appropriate factor
$factor = $file.Width/640
#reduce the image size by the appropriate factor
$thumb = $file.GetThumbnailImage($file.Width/$factor, $file.Height/$factor, $null, [intptr]::Zero)
$thumb.Save($destDir + $newFileName)
$thumb.Dispose()
$file.Dispose()
}
|
Unfortunately, shrinking the size of my photos didn’t seem to solve my problem, but I thought I’d post this script anyway because it might be helpful in the future. As an aside, anyone know why the Gold Lantern frame could play all my photos but this Nextar one couldn’t? There must be some spec associated with digital frames that will tell me the limits of how many photos a frame can process, how big these photos can be in file size and pixel width/height, etc. I didn’t do a whole lot of research in this area, but it would sure be nice to know before I buy any more frames.