Ver Mensaje Individual
  #19  
Antiguo 10-01-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Reputación: 2
giantonti1801 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Código Delphi [-]
var
  NewBitmap: TBitmap;
  MS1 : TMemoryStream;
  Surf: TBitmapSurface;
  JpgQuality : TBitmapCodecSaveParams;
begin
  NewBitmap := TBitmap.CreateFromFile('input.bmp');
  MS1 := TMemoryStream.Create;
  Surf := TBitmapSurface.create;

  try
    MS1.Position := 0;
    Surf.Assign(NewBitmap);
    JpgQuality.Quality := 100;   //   <<<-------------  ¡¡¡ AQUÍ !!!   

    if not TBitmapCodecManager.SaveToStream(MS1, Surf, '.jpg', @JpgQuality) then
      raise EBitmapSavingFailed.Create('Error saving Bitmap to jpg');

    MS1.SaveToFile('ouput.jpg');
  finally
    NewBitmap.Free;
    MS1.Free;
    Surf.Free;
  end;
end;
No hay manera de hacerlo de esta forma. El problema radica que yo estoy tomando una con el dispositivo movil y lo estoy guardando un IMAGE1.BITMAP luego aunque en diversos intentos es tomar la foto ya convertida en el
Código Delphi [-]
MS1 := TMemoryStream.Create;
y pasarla a la base de datos pero no lo he logrado
Código Delphi [-]
uniQueryIMGFOTO.LoadFromStream(MS1);
esta puede ser mi única alternativa. hay que tomar en cuenta que todo se está realizando en un dispositivo movil Antroid/Ios.

Código Delphi [-]
procedure TFormPrincipalTab.Timer_FINTimer(Sender: TObject);
var
Image: TBitmap;
bmp: TBitmap;
NewBitmap: TBitmap;
MS1 : TMemoryStream;
Surf: TBitmapSurface;
JpgQuality : TBitmapCodecSaveParams;
begin
  LabelCuentaRegresiva.Text := '0';
  Timer_N1.Enabled := false;
  LabelCuentaRegresiva.Visible := false;
  cancel := false;
  SetupSoundFoto('camara_51.mp3');
  PlaySoundFoto;
  {$IFDEF ANDROID}
  CameraComponent1.SampleBufferToBitmap(Image4.Bitmap, true);
  CameraComponent1.Active := false;
  {$ENDIF}
  begin
   NewBitmap := image4.bitmap;//TBitmap.CreateFromFile('input.bmp');
   MS1 := TMemoryStream.Create;
   Surf := TBitmapSurface.create;
   try
   MS1.Position := 0;
   Surf.Assign(NewBitmap);
   JpgQuality.Quality := 70;
     if not TBitmapCodecManager.SaveToStream(MS1, Surf, '.jpg', @JpgQuality) then
     raise EBitmapSavingFailed.Create('Error saving Bitmap to jpg');
     MS1.SaveToFile('ouput.jpg');

       begin
          if Label26.Text = 'InExistente' then
            begin
             LabelNumeroDpto.Text := labelDpto.Text;
             LabelNombreVis.Text := Edit1.Text;
                begin
                UniQueryVisitantesVal.Close;
                UniQueryVisitantesVal.SQL.Clear;
                UniQueryVisitantesVal.SQL.Add('INSERT INTO visitantes (Nom_Vis,Apell_Vis,Rut_Vis,Foto,Num_dep_Vis,Edif_vis,Estatus,Usuario_mod,)');           //
                UniQueryVisitantesVal.SQL.Add('VALUES (:Nom_Vis, :Apell_Vis, :Rut_Vis, :Foto, :Num_dep_Vis, :Edif_vis, :Estatus, :Usuario_mod, )');                      //,
                UniQueryVisitantesVal.ParamByName('Nom_vis').AsString := LabelNombreVis.text;
                UniQueryVisitantesVal.ParamByName('Rut_Vis').AsString := LabelRutVis.Text;
                UniQueryVisitantesVal.ParamByName('Num_dep_Vis').Asstring := LabelNumeroDpto.text;
                UniQueryVisitantesVal.ParamByName('Edif_vis').AsString := LabelEdificio.text;
                UniQueryVisitantesVal.ParamByName('Estatus').AsString := 'ACT';
                UniQueryVisitantesVal.ParamByName('Usuario_mod').Asstring := 'TOTEM';
                //UniQueryVisitantesVal.ParamByName('otro').Asstring := 'E';
                UniQueryVisitantesVal.ExecSQL;
                   begin
                   UniQueryIMG.Close;
                   UniQueryIMG.SQL.Clear;
                   UniQueryIMG.SQL.Add('UPDATE IMG SET FOTO = :FOTO, OTRO1 = :OTRO1, MODULO = :MODULO where OTRO1  = ''I'' and MODULO = ''VISITANTES''');
                   UniQueryIMG.ParamByName('OTRO1').AsString := '';
                   UniQueryIMGFOTO.LoadFromFile('Ouput.jpg');
                   uniQueryIMGFOTO.LoadFromStream(MS1);
                   UniQueryIMG.ExecSQL;
                   end;

                      begin
                      UniQueryVisitasIngreso.Close;
                      UniQueryVisitasIngreso.SQL.Clear;
                      UniQueryVisitasIngreso.SQL.Add('INSERT INTO visitas (Nom_Vis,Apell_Vis,Rut__Vis,Foto,Num_dep_Vis,Piso__Vis,Edif_Vis,Hora_In_Vis, Num_Vis,Usuario_mod,otro)');           //
                      UniQueryVisitasIngreso.SQL.Add('VALUES (:Nom_Vis, :Apell_Vis, :Rut__Vis, :Foto, :Num_dep_Vis, :Piso__Vis, :Edif_Vis, :Hora_In_Vis, :Num_Vis, :Usuario_mod, tro)');                      //,
                      UniQueryVisitasIngreso.ParamByName('Nom_vis').AsString := LabelNombreVis.text;
                      UniQueryVisitasIngreso.ParamByName('Rut__Vis').AsString := LabelRutVis.Text;
                      UniQueryVisitasIngreso.ParamByName('Num_dep_Vis').Asstring := LabelNumeroDpto.text;
                      UniQueryVisitasIngreso.ParamByName('Piso__Vis').AsString := LabelPisoINF.text;
                      UniQueryVisitasIngreso.ParamByName('Edif_Vis').AsString := LabelEdificio.text;
                      UniQueryVisitasIngreso.ParamByName('Hora_In_Vis').AsDateTime := Now;
                      UniQueryVisitasIngreso.ParamByName('Num_Vis').AsString := 'XXX';
                      UniQueryVisitasIngreso.ParamByName('Usuario_mod').Asstring := 'TOTEM';
                      UniQueryVisitasIngreso.ParamByName('otro').Asstring := 'E';
                      UniQueryVisitasIngreso.ExecSQL;
                      end;

                        begin
                        UniQueryIMG.Close;
                        UniQueryIMG.SQL.Clear;
                        UniQueryIMG.SQL.Add('UPDATE IMG SET FOTO = :FOTO, OTRO1 = :OTRO1 where OTRO1  = ''I'' and MODULO = ''VISITAS''');
                        UniQueryIMG.ParamByName('OTRO1').AsString := '';
                        uniQueryIMGFOTO.LoadFromStream(MS1);
                        UniQueryIMG.ExecSQL;
                        end;
                end;
             TabControl1.ActiveTab := TblEspera;
             LayoutEspera.Visible := true;
             FloatAnimation7.Enabled := true;
             Timer1.Enabled := true;
             Timer_fin.Enabled := false;
            end
      // end
            else
             begin
                LabelNumeroDpto.Text := labelDpto.Text;
                LabelNombreVis.Text := Edit1.Text;
                begin
                UniQueryVisitasIngreso.Close;
                UniQueryVisitasIngreso.SQL.Clear;
                UniQueryVisitasIngreso.SQL.Add('INSERT INTO visitas (Nom_Vis,Apell_Vis,Rut__Vis,Foto,Num_dep_Vis,Piso__Vis,Edif_Vis,Hora_In_Vis, Num_Vis,Usuario_mod,otro)');           //
                UniQueryVisitasIngreso.SQL.Add('VALUES (:Nom_Vis, :Apell_Vis, :Rut__Vis, :Foto, :Num_dep_Vis, :Piso__Vis, :Edif_Vis, :Hora_In_Vis, :Num_Vis, :Usuario_mod, tro)');                      //,
                UniQueryVisitasIngreso.ParamByName('Nom_vis').AsString := LabelNombreVis.text;
                UniQueryVisitasIngreso.ParamByName('Rut__Vis').AsString := LabelRutVis.Text;
                UniQueryVisitasIngreso.ParamByName('Num_dep_Vis').Asstring := LabelNumeroDpto.text;
                UniQueryVisitasIngreso.ParamByName('Piso__Vis').AsString := LabelPisoINF.text;
                UniQueryVisitasIngreso.ParamByName('Edif_Vis').AsString := LabelEdificio.text;
                UniQueryVisitasIngreso.ParamByName('Hora_In_Vis').AsDateTime := Now;
                UniQueryVisitasIngreso.ParamByName('Num_Vis').AsString := 'XXX';
                UniQueryVisitasIngreso.ParamByName('Usuario_mod').Asstring := 'TOTEM';
                UniQueryVisitasIngreso.ParamByName('otro').Asstring := 'E';
                UniQueryVisitasIngreso.ExecSQL;
                  begin
                  UniQueryIMG.Close;
                  UniQueryIMG.SQL.Clear;
                  UniQueryIMG.SQL.Add('UPDATE IMG SET FOTO = :FOTO, OTRO1 = :OTRO1 where OTRO1  = ''I'' and MODULO = ''VISITAS''');
                  UniQueryIMG.ParamByName('OTRO1').AsString := '';
                  uniQueryIMGFOTO.LoadFromStream(MS1) ;
                  UniQueryIMG.ExecSQL;
                  end;
                end;
              TabControl1.ActiveTab := TblEspera;
              LayoutEspera.Visible := true;
              FloatAnimation7.Enabled := true;
              Timer1.Enabled := true;
              Timer_fin.Enabled := false;
              ColorAnimation1.Enabled := false;
             end;

       end;
    finally
    //NewBitmap.Free;  //Los estoy comentando ya que uno de los dos me esta dando problema cerrandome la aplicacion
    MS1.Free;
    //Surf.Free;       //Los estoy comentando ya que uno de los dos me esta dando problema cerrandome la aplicacion


   end;

  end;
end;
Responder Con Cita