Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Delphi para la web
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-05-2020
Avatar de Maniches
Maniches Maniches is offline
Miembro
 
Registrado: nov 2012
Ubicación: Lima - Perú
Posts: 67
Poder: 12
Maniches Va por buen camino
Lightbulb Nuevo formato de imagen para la web - WEBP

Hola Amig@s del foro
He estado investigando con respecto a este formato y hacer que delphi lo soporte.
He buscado en foros y he logrado encontrar la librería DLL y la definición de usar la librería que Google proporciona.

He intentado hacer la conversión de un archivo *.BMP hacia *.Webp obteniendo un resultado de BMP(655kb) y WebP(134kb).
el problema que está ocurriendo es que no está respetando los colores de la imagen original. tiene la misma claridad, pero no los mismos colores.

les adjunto una imagen para que vean el resultado. les comparto parte del código y me ayudan con sus sugerencias o que puede estar haciéndose erradamente.

Definición de función que usa la librería:

Código Delphi [-]
  {$if defined(Win32)}
    LIB_WEBP = 'libwebp.dll';
  {$elseif defined(Win64)}
    LIB_WEBP = 'libwebp64.dll';

function WebPEncodeBGR(const bgr: PByte; width, height, stride: Integer; quality_factor: Single; var output: PByte): Cardinal; cdecl; external LIB_WEBP;

procedimiento que hace la conversión: (Se carga la imagen bmp al objeto TIMAGE)
Código Delphi [-]

imgConvertir: TImage;

procedure TForm1.btnConvertirWebPClick(Sender: TObject);
var
  src, dst: TBytes;
  data, pb: PByte;
  iy, wdt, hgt, datasize, stride: Integer;
  bmp: TBitmap;
begin
    bmp := TBitmap.Create; {Converting to Bitmap}
    bmp.PixelFormat := pf24bit;
    bmp.Width := imgConvertir.Picture.Width;
    bmp.Height := imgConvertir.Picture.Height;
    bmp.Canvas.Draw(0, 0, imgConvertir.Picture.Graphic);
    stride := NativeInt(bmp.ScanLine[1]) - NativeInt(bmp.ScanLine[0]);
    datasize := WebPEncodeRGB(bmp.ScanLine[0], bmp.Width, bmp.Height, stride, 100, data);
    SetLength(src, datasize);
    MoveMemory(src, data, datasize);
    TFile.WriteAllBytes(ExtractFilePath(Application.ExeName)+'\tiger.webp', src);
    bmp.Free;

¿Qué sugerencia u opiniones? ¿capaz se está enviando los parámetros de forma errada?
Es muy interesante usar este formato liviano para los desarrollos web. Les dejo un link para que vean su información: https://developers.google.com/speed/webp
Imágenes Adjuntas
Tipo de Archivo: jpg 2020-05-03_11-13-22.jpg (33,9 KB, 24 visitas)
__________________
Maniches
maniches@outlook.com

Última edición por Casimiro Notevi fecha: 03-05-2020 a las 20:55:48.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Formato imagen WebP (google) Maniches Varios 1 31-10-2018 20:18:11
WebAssembly : Nuevo formato binario para aplicaciones web nlsgarcia La Taberna 1 19-06-2015 17:21:15
Agregar nuevo formato y codecs al TMediaPlayer asdbernardo Varios 3 29-05-2014 16:59:48
Nuevo Formato Hacienda elguille Varios 0 18-01-2006 09:07:24
nuevo en delphi (como dar formato a una columna en dbgrid ) gmontes Conexión con bases de datos 4 13-09-2004 20:53:47


La franja horaria es GMT +2. Ahora son las 04:36:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi