
Al reducir el tamaño de una imagen me aumenta su peso
Publicado por Felipe (7 intervenciones) el 04/09/2014 19:48:03
Hola a todos, soy nuevo en esto, y creando un programa para redimensionar imagenes me ha surgido un problema.
El programa, lo que hace es buscar una imagen, redimensionarla para que tenga un alto o ancho (segun cual sea de mayor tamaño) maximo de 800 pixeles, y que el otro se ajuste para no distorsionar la imagen. Y por ultimo la guarda.
El problema, es que cuando redimensiona la imagen, esta no se porque pesa mas que la imagen original, aunque su tamaño se halla reducido.
Os pongo el codigo, por si encontrais el error o la razon de este hecho.
Saludos y gracias de antemano.

El programa, lo que hace es buscar una imagen, redimensionarla para que tenga un alto o ancho (segun cual sea de mayor tamaño) maximo de 800 pixeles, y que el otro se ajuste para no distorsionar la imagen. Y por ultimo la guarda.
El problema, es que cuando redimensiona la imagen, esta no se porque pesa mas que la imagen original, aunque su tamaño se halla reducido.
Os pongo el codigo, por si encontrais el error o la razon de este hecho.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Imports System.IO
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim openFileDialog1 As New OpenFileDialog()
openFileDialog1.Title = "Seleccionar Imagen"
openFileDialog1.FileName = ""
openFileDialog1.Filter = "JPG|*.jpg|GIF|*.gif"
openFileDialog1.ShowDialog()
PictureBox1.Image = System.Drawing.Image.FromFile(openFileDialog1.FileName)
Dim bmp As New Bitmap(PictureBox1.Image)
If PictureBox1.Image.Size.Height > 800 Then
If PictureBox1.Image.Size.Height > PictureBox1.Image.Size.Width Then
Dim abc As Double = ((PictureBox1.Image.Size.Width * 800) / PictureBox1.Image.Size.Height)
Dim newsize As New Size(800, abc)
PictureBox1.Image = New Bitmap(bmp, 800, abc)
ElseIf PictureBox1.Image.Size.Height < PictureBox1.Image.Size.Width Then
Dim abcd As Double = ((PictureBox1.Image.Size.Height * 800) / PictureBox1.Image.Size.Width)
Dim newsize As New Size(abcd, 800)
PictureBox1.Image = New Bitmap(bmp, abcd, 800)
End If
End If
If PictureBox1.Image.Size.Width > 800 Then
If PictureBox1.Image.Size.Height > PictureBox1.Image.Size.Width Then
Dim abc As Double = ((PictureBox1.Image.Size.Width * 800) / PictureBox1.Image.Size.Height)
Dim newsize As New Size(800, abc)
PictureBox1.Image = New Bitmap(bmp, 800, abc)
ElseIf PictureBox1.Image.Size.Height < PictureBox1.Image.Size.Width Then
Dim abcd As Double = ((PictureBox1.Image.Size.Height * 800) / PictureBox1.Image.Size.Width)
Dim newsize As New Size(abcd, 800)
PictureBox1.Image = New Bitmap(bmp, 800, abcd)
End If
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim saveFileDialog1 As New SaveFileDialog()
saveFileDialog1.Title = "Guardar Imagen"
saveFileDialog1.FileName = "Nueva Imagen"
saveFileDialog1.Filter = "JPG|*.jpg|GIF|*.gif"
saveFileDialog1.ShowDialog()
PictureBox1.Image.Save(saveFileDialog1.FileName)
End Sub
End Class
Saludos y gracias de antemano.


Valora esta pregunta


0