Red de conocimiento informático - Material del sitio web - Cómo guardar imágenes en VB

Cómo guardar imágenes en VB

VB6.0 puede usar la instrucción SavePicture para guardar la imagen modificada en el formulario o cuadro de imagen.

1) La instrucción SavePicture guarda los gráficos en la propiedad Imagen o Imagen del objeto o control (si está asociado con él) en un archivo.

Nota: Ya sea que el gráfico se cargue desde un archivo en la propiedad Imagen del objeto en tiempo de diseño o de ejecución, y sea un mapa de bits, un icono, un metarchivo o un metarchivo mejorado, todo el gráfico se guardará en el mismo formato como el archivo original. Si es un archivo GIF o JPEG, se guardará como un archivo de mapa de bits.

2) La propiedad AutoRedraw se utiliza para devolver o establecer la salida del método de gráficos en gráficos persistentes.

Cuando esta propiedad es Verdadera, se habilita el redibujado automático del objeto Formulario o control PictureBox

. Los gráficos y el texto se muestran en la pantalla y se almacenan como imágenes en la memoria. Este objeto no acepta eventos de dibujo y se volverá a dibujar si es necesario utilizando la imagen almacenada en la memoria.

El siguiente código guardará la imagen cuando se cargue el formulario y se modifique el texto: Option?Explicit

Private?Sub?Command1_Click()

SavePicture ?Imagen,? App.Path?&?"?\TEST"'?Guarde la imagen en un archivo.

End?Sub

Privado?Sub?Form_Click()

FontSize?=?24

¿Imprimir?"?Guardar la imagen a archivo"

End?Sub

Privado?Sub?Form_Load()

Me.AutoRedraw?=?True

¿Fin? Consulte los siguientes pasos y código:

a. Cargue la imagen que debe agregarse con una marca de agua de texto en el cuadro de imagen.

b. Utilice el siguiente código para agregar texto al cuadro de imagen.

Private?Sub?CmdEdit_Click()?Modify

Dim?strTxt?As?String

strTxt?=?"¿Llueve o brilla? Dispara"

Imagen1. FontSize ?=?18

Imagen1.CurrentY?=?Picture1.ScaleHeight?-?30

Imagen1.CurrentX?=?Picture1.ScaleWidth?/?2?-?Picture1. TextWidth (strTxt)?/?2

Imagen1.ForeColor?=?vbWhite

Imagen1.FontItalic?=?True

Imagen1.Print?strTxt

End?Sub

c. Convierta la siguiente API a formato de imagen y coloque el código denominado saveApg.Option?Explicit

Public?Type?GUID

.

Datos1?As?Long

Datos2?As?Entero

Datos3?As?Entero

Datos4(0~7)?As?Byte

¿Fin?Tipo

¿Público?Tipo?GdiplusStartupInput

GdiplusVersion?As?Long

DebugEventCallback?As?Long

¿Suprimir hilo de fondo?As?Long

¿Suprimir códecs externos?As?Long

¿Fin?Tipo

¿Tipo público?EncoderParameter

GUID?As. ?GUID

NúmeroDeValores?As?Long

tipo?As?Long

Valor?As?Long

Fin?Tipo

¿Tipo público?EncoderParameter

¿Suprimir códecs externos?

Parámetro del codificador de tipo público

El recuento es largo

El parámetro es EncoderParameter

Tipo de fin

Función de declaración pública.

Función GdiplusStartup Lib?"(¿token? ¿As? Long, inputbuf? ¿As? GdiplusStartupInput, outputbuf? ¿As? Long)?GdiplusShutdown?"(ByVal.token.As.Long).As.Long

Público. ¿Declarar.Función.GdipCreateBitmapFromHBITMAP.Lib?"(ByVal?hbm?As?Long, ByVal?hpal?As?Long,?Bitmap?As?Long)?As?Long

¿Público?Declarar?Función? ¿GdipDisposeImage?Lib?"(ByVal? Image?As?Long)?As?Long

¿Público?Declare?Function?GdipSaveImageToFile?Lib?"(ByVal Image As Long, ByVal fileName As Long, clsidEncoder Como GUID , encoderParams como cualquiera)?CLSIDFromString?"ole32"?(ByVal?str?As?Long,id?As?GUID)?As?Long

Público?Declarar?Función?GdipCreateBitmapFromFile?Lib?"( ¿ByVal? fileName?As?Long,?Bitmap?As?Long)?As?Long

¿Público como cadena, calidad ByVal opcional como bytes = 80) como booleano

Dim? tSI?As GdiplusStartupInput

Dim?lRes?As?

"Inicializar GDI+

tSI.GdiplusVersion?=?1

lRes? =?GdiplusStartup(lGDIP,?tSI,?0)

If lRes?=?0?image

lRes?=?GdipCreateBitmapFromHBITMAP(pict.Handle,?0 ,?lBitmap)

Si lRes?=?0?Entonces

Dim?tJpgEncoder?As?GUID

Dim?tParams?As?EncoderParameters

'Inicializar el identificador GUID del decodificador

CLSIDFromString?StrPtr("{557CF401-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder

'Establecer parámetros del dispositivo de decodificación

p>

tParams.

Count?=?1

Con?tParams.Parameter?'?Quality

'Obtener el identificador GUID del parámetro de calidad

CLSIDFromString?StrPtr("{ 1D5BE4B5 -FA4A-452D-9CDD-5DB35105E7EB}"),.GUID

.NumberOfValues?=?1

.type?=?4

.Value ? =?VarPtr(calidad)

Fin?Con

'Guardar imagen

lRes?=?GdipSaveImageToFile(lBitmap,?StrPtr(nombre de archivo),?tJpgEncoder , ?tParams)

'Destruir imagen GDI+

GdipDisposeImage?lBitmap

Fin?GDI+

GdiplusShutdown?lGDIP

¿Fin?Si

Si?lRes?Entonces

PictureBoxSaveJPG?=?False

Else

PictureBoxSaveJPG?=?True< / p>

Fin?Si

Fin?Función

d Utilice el siguiente código para implementar la imagen de marca de agua de texto agregada y guarde la imagen en formato jpg. ¿Privado?Sub?Command3_Click()?Guardar como imagen .jpg

'?Establezca "CancelError" en Verdadero

CommonDialog1.CancelError=?True

¿Activado? ¿Error?GoTo?ErrHandler

'?Establecer banderas

CommonDialog1.Flags?=?cdlOFNHideReadOnly

'?Establecer filtro

CommonDialog1. Filter?=?cdlOFNHideOnly

'?Archivo JPEG "?(*.jpg)|*.jpg"

'?Especifique el filtro predeterminado

CommonDialog1. FilterIndex?=?2

'?Mostrar el cuadro de diálogo abierto

CommonDialog1.ShowSave

'?Mostrar el nombre del archivo seleccionado

'MsgBox?CommonDialog1.fileName

Set?Picture2.Picture?=?Picture1.Image?'Transfiera la imagen dibujada por Imagen1 y asigne un valor a Imagen2. >Dim?ret?As?Boolean value

ret?=?PictureBoxSaveJPG(Picture2,?CommonDialog1.fileName)?Guardar imagen comprimida

If?ret?=?False?Then

MsgBox?"Error al guardar"

¿Fin?Si

¿Salir?Sub

ErrHandler:

'? El usuario presionó el botón cancelar

¿Salir?Sub

¿Finalizar?