Ir al contenido


Foto

[RESUELTO] Pasar de PGM a BMP


  • Por favor identifícate para responder
18 respuestas en este tema

#1 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 29 octubre 2009 - 01:54

Hola amigos,
¿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,
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 29 octubre 2009 - 02:00

Hola

Puedes utilizar Gimp 2, pero tendrás que convertir una por una de las imagenes :s

Salud OS
  • 0

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 29 octubre 2009 - 02:02

Hola

Puedes utilizar Gimp 2, pero tendrás que convertir una por una de las imagenes :s

Salud OS

A GIMP no le tengo miedo amigo, y lo tengo instalado... el asunto es que ando de vaguito... y son 400 :D
  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 29 octubre 2009 - 02:03

jejeje, entonces debiste solicitar un code que haga eso :p :D :D :D

Vago

Salus OS
  • 0

#5 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 29 octubre 2009 - 02:06

jejeje, entonces debiste solicitar un code que haga eso :p :D :D :D

Vago

Salus OS

Jajaja...

En realidad el code que debería ejecutar sería este:


delphi
  1. for i := 1 to 400 do
  2.   ShowMessage('Fijarse primero si tienes la base de datos de imágenes... y no esperar a último día');



:D :s :(

Saludos,
  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 29 octubre 2009 - 02:08

Ya veo :D :D :D

Ojala y haya algo que te ayude, porque si, 400 imagenes son bastantes :s

Salud OS
  • 0

#7 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 29 octubre 2009 - 02:11

Parece que encontré algo...

http://www.filetrial...onvert/pgm.html

Ya mi fijo si funciona el bicho... sino lo hago con las 20 primeras, inicialmente.

Saludos,
  • 0

#8 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 29 octubre 2009 - 02:14

ah que bien, suerte :)

Salud OS
  • 0

#9 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 29 octubre 2009 - 02:27

Pues funciona :D... La pega es que sólo pudo hacer hasta con 50 por vez... :p

Saludos,
  • 0

#10 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 29 octubre 2009 - 02:34

Pues funciona :D... La pega es que sólo pudo hacer hasta con 50 por vez... :p

Saludos,


400 / 50 = 8 repeticiones, por lejo es muy mucho mas mejor a las 400 que te hubiesen tocado :D
  • 0

#11 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 599 mensajes

Escrito 30 octubre 2009 - 01:39



delphi
  1. uses Windows, Types, SysUtils, Graphics;
  2.  
  3. function GetLine(const hFile: Integer): string;
  4. var Char: System.Char; Pos: Cardinal;
  5. begin
  6. repeat Result := '';
  7.   while _lread(hFile, @Char, 1) = 1 do
  8.   if Char <> #10 then
  9.     Result := Result + Char
  10.   else
  11.     begin
  12.     _lread(hFile, @Char, 1);
  13.     if Char <> #13 then
  14.       _llseek(hFile, -1, FILE_CURRENT);
  15.     Break;
  16.     end;
  17.  
  18.   Pos := System.Pos(&#39;#&#39;, Result);
  19.   if Pos <> 0 then Delete(Result, Pos, 255);
  20.   Result := Trim(StringReplace(Result, &#39;  &#39;, &#39; &#39;, [rfReplaceAll]));
  21. until Result <> &#39;&#39;;
  22. end;
  23.  
  24. var
  25. Line: string;
  26. sr: TSearchRec;
  27. Bitmap: TBitmap;
  28. pgm, Max, x, y, Count, Color: Integer;
  29.  
  30. begin
  31. Bitmap := TBitmap.Create;
  32. Bitmap.PixelFormat := pf24bit;
  33. if FindFirst(&#39;*.pgm&#39;, faAnyFile, sr) = 0 then
  34.   begin
  35.   repeat
  36.     pgm := _lopen(PChar(sr.Name), OF_READ);
  37.     Line := GetLine(pgm);
  38.     if Line[1] = &#39;P&#39; then
  39.     if Line[2] = &#39;2&#39; then
  40.       begin
  41.       Line := GetLine(pgm);
  42.       Bitmap.Width := StrToInt(Copy(Line, 1, Pos(&#39; &#39;, Line) - 1));
  43.       Bitmap.Height := StrToInt(Copy(Line, Pos(&#39; &#39;, Line) + 1, 255));
  44.       Max := StrToInt(GetLine(pgm));
  45.       for y := 0 to Bitmap.Height - 1 do
  46.         begin
  47.         Line := GetLine(pgm);
  48.         for x := 0 to Bitmap.Width - 1 do
  49.           begin
  50.           Count := Pos(&#39; &#39;, Line) - 1;
  51.           if Count = -1 then
  52.             Count := Length(Line);
  53.           Color := (StrToInt(Copy(Line, 1, Count)) * 255) div Max;
  54.           Bitmap.Canvas.Pixels[x, y] := RGB(Color, Color, Color);
  55.           Delete(Line, 1, Count + 1);
  56.           end;
  57.         end;
  58.       end
  59.     else if Line[2] = &#39;5&#39; then
  60.       begin
  61.       Line := GetLine(pgm);
  62.       Bitmap.Width := StrToInt(Copy(Line, 1, Pos(&#39; &#39;, Line) - 1));
  63.       Bitmap.Height := StrToInt(Copy(Line, Pos(&#39; &#39;, Line) + 1, 255));
  64.       Max := StrToInt(GetLine(pgm));
  65.       for y := 0 to Bitmap.Height - 1 do
  66.         begin
  67.         for x := 0 to Bitmap.Width - 1 do
  68.           begin
  69.           Color := 0;
  70.           _lread(pgm, @Color, 1);
  71.           Color := (Color * 255) div Max;
  72.           Bitmap.Canvas.Pixels[x, y] := RGB(Color, Color, Color);
  73.           end;
  74.         end;
  75.       end;
  76.     Bitmap.SaveToFile(sr.Name + &#39;.bmp&#39;);
  77.   until FindNext(sr) <> 0;
  78.   FindClose(sr);
  79.   end;
  80. MessageBeep(0);
  81. end.



Salud
  • 0

#12 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 30 octubre 2009 - 02:15

:) Ya extrañaba tus excelentes aportaciones little bro (y)

Salud OS
  • 0

#13 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 30 octubre 2009 - 04:39

Excelente aporte amigo (y).
  • 0

#14 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 30 octubre 2009 - 07:51

¡Hola!

Tarde, pero vine...

Gracias Javier... desafortunadamente ya he convertido todas las imágenes. De todas formas voy a probar tu code (y)

Saludos,
  • 0

#15 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 30 octubre 2009 - 07:55

La verdad funciona genial amigo y todas las imagenes que desees, no solo de 50 en 50. :D

Salud OS
  • 0

#16 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 30 octubre 2009 - 08:25

Enseguida lo pruebo, acabo de descargarlo.
Ahora lo que resta es revisar el code y entender el formato de pgm.

Saludos,
  • 0

#17 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

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,


:D :D :D, si logras eso me lo explicas, porque no le entiendo ni papa :p

Salud OS
  • 0

#18 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

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,


:D :D :D, si logras eso me lo explicas, porque no le entiendo ni papa :p

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? :D

Saludos,
  • 0

#19 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 31 octubre 2009 - 03:45

...Ahora lo que resta es revisar el code y entender el formato de pgm....


...:D :D :D, si logras eso me lo explicas, porque no le entiendo ni papa :p...


cHackAll estuvo rápido e ingenioso, como siempre.  (y)

Para comprender mejor el formato, que es bastante simple, podéis revisar este documento o pasaros por aquí:D

Saludos.


  • 0




IP.Board spam blocked by CleanTalk.