[RESUELTO] Pasar de PGM a BMP
#1
Escrito 29 octubre 2009 - 01:54
¿Alguno conoce algún software que convierte el formato de imagen pgm a bmp?
Veran quiero (y necesito) empezar con la etapa de entrenamiento de mi sistema, y para ello necesito que las imágenes esten en bmp.
Recuerdo haber usado uno que me recomendaron en CD... pero el hilo pasó al olvido en alguna de las caídas y no recuerdo su nombre.
El asunto es que necesito convertir unas 400 fotos. Y como que estar haciendolo una por una no va... El que me habían recomendado hacia eso... todo de un tirón con sólo pasar el directorio donde están las imágenes.
Me preguntaba si alguno conoce algo por el estilo.
Saludos,
#4
Escrito 29 octubre 2009 - 02:03
Vago
Salus OS
#5
Escrito 29 octubre 2009 - 02:06
Jajaja...jejeje, entonces debiste solicitar un code que haga eso
Vago
Salus OS
En realidad el code que debería ejecutar sería este:
for i := 1 to 400 do ShowMessage('Fijarse primero si tienes la base de datos de imágenes... y no esperar a último día');
Saludos,
#6
Escrito 29 octubre 2009 - 02:08
Ojala y haya algo que te ayude, porque si, 400 imagenes son bastantes
Salud OS
#7
Escrito 29 octubre 2009 - 02:11
http://www.filetrial...onvert/pgm.html
Ya mi fijo si funciona el bicho... sino lo hago con las 20 primeras, inicialmente.
Saludos,
#8
Escrito 29 octubre 2009 - 02:14
Salud OS
#9
Escrito 29 octubre 2009 - 02:27
Saludos,
#10
Escrito 29 octubre 2009 - 02:34
Pues funciona ... La pega es que sólo pudo hacer hasta con 50 por vez...
Saludos,
400 / 50 = 8 repeticiones, por lejo es muy mucho mas mejor a las 400 que te hubiesen tocado
#11
Escrito 30 octubre 2009 - 01:39
uses Windows, Types, SysUtils, Graphics; function GetLine(const hFile: Integer): string; var Char: System.Char; Pos: Cardinal; begin repeat Result := ''; while _lread(hFile, @Char, 1) = 1 do if Char <> #10 then Result := Result + Char else begin _lread(hFile, @Char, 1); if Char <> #13 then _llseek(hFile, -1, FILE_CURRENT); Break; end; Pos := System.Pos('#', Result); if Pos <> 0 then Delete(Result, Pos, 255); Result := Trim(StringReplace(Result, ' ', ' ', [rfReplaceAll])); until Result <> ''; end; var Line: string; sr: TSearchRec; Bitmap: TBitmap; pgm, Max, x, y, Count, Color: Integer; begin Bitmap := TBitmap.Create; Bitmap.PixelFormat := pf24bit; if FindFirst('*.pgm', faAnyFile, sr) = 0 then begin repeat pgm := _lopen(PChar(sr.Name), OF_READ); Line := GetLine(pgm); if Line[1] = 'P' then if Line[2] = '2' then begin Line := GetLine(pgm); Bitmap.Width := StrToInt(Copy(Line, 1, Pos(' ', Line) - 1)); Bitmap.Height := StrToInt(Copy(Line, Pos(' ', Line) + 1, 255)); Max := StrToInt(GetLine(pgm)); for y := 0 to Bitmap.Height - 1 do begin Line := GetLine(pgm); for x := 0 to Bitmap.Width - 1 do begin Count := Pos(' ', Line) - 1; if Count = -1 then Count := Length(Line); Color := (StrToInt(Copy(Line, 1, Count)) * 255) div Max; Bitmap.Canvas.Pixels[x, y] := RGB(Color, Color, Color); Delete(Line, 1, Count + 1); end; end; end else if Line[2] = '5' then begin Line := GetLine(pgm); Bitmap.Width := StrToInt(Copy(Line, 1, Pos(' ', Line) - 1)); Bitmap.Height := StrToInt(Copy(Line, Pos(' ', Line) + 1, 255)); Max := StrToInt(GetLine(pgm)); for y := 0 to Bitmap.Height - 1 do begin for x := 0 to Bitmap.Width - 1 do begin Color := 0; _lread(pgm, @Color, 1); Color := (Color * 255) div Max; Bitmap.Canvas.Pixels[x, y] := RGB(Color, Color, Color); end; end; end; Bitmap.SaveToFile(sr.Name + '.bmp'); until FindNext(sr) <> 0; FindClose(sr); end; MessageBeep(0); end.
Salud
#12
Escrito 30 octubre 2009 - 02:15
Salud OS
#13
Escrito 30 octubre 2009 - 04:39
#14
Escrito 30 octubre 2009 - 07:51
Tarde, pero vine...
Gracias Javier... desafortunadamente ya he convertido todas las imágenes. De todas formas voy a probar tu code
Saludos,
#15
Escrito 30 octubre 2009 - 07:55
Salud OS
#16
Escrito 30 octubre 2009 - 08:25
Ahora lo que resta es revisar el code y entender el formato de pgm.
Saludos,
#17
Escrito 30 octubre 2009 - 08:27
Enseguida lo pruebo, acabo de descargarlo.
Ahora lo que resta es revisar el code y entender el formato de pgm.
Saludos,
, si logras eso me lo explicas, porque no le entiendo ni papa
Salud OS
#18
Escrito 30 octubre 2009 - 08:32
Enseguida lo pruebo, acabo de descargarlo.
Ahora lo que resta es revisar el code y entender el formato de pgm.
Saludos,
, si logras eso me lo explicas, porque no le entiendo ni papa
Salud OS
¡Funciona!
Jajaja... estamos en la misma... pero veamos el lado bueno. Podemos disfrutar de una bellas imágenes...
¿Javier... como supiste que me gustan las asiáticas?
Saludos,
#19
Escrito 31 octubre 2009 - 03:45
...Ahora lo que resta es revisar el code y entender el formato de pgm....
... , si logras eso me lo explicas, porque no le entiendo ni papa ...
cHackAll estuvo rápido e ingenioso, como siempre.
Para comprender mejor el formato, que es bastante simple, podéis revisar este documento o pasaros por aquí.
Saludos.