Main Page | Report this Page
.NET DotNet Forum Index  »  VB.NET Forum (Visual Basic .NET)  »  Thumbnail Image Grainy...
Page 1 of 1    

Thumbnail Image Grainy...

Author Message
Miro...
Posted: Fri Nov 06, 2009 2:35 pm
Guest
I found this link to create a thumbnail image.
http://forums.asp.net/t/739822.aspx

But the thumbnail image looks grainy.
If I take the same image, resample it in corel photopaint at 72dpi, the
image is nice and small and not grainy at all ( sharp ).

I was wondering if there is anything else that can be done to a jpg as you
are compressing it down to a smaller jpg, so you do not end up with a grainy
image.

Thanks,

Miro
 
Alexey Smirnov...
Posted: Fri Nov 06, 2009 2:35 pm
Guest
On Nov 6, 9:06 pm, "Miro" <m... at (no spam) beero.com> wrote:
Quote:
I found this - but I cant seem to convert it to vb.

// Prepare for a controlled-quality JPEG
exportImageCodecInfo jpegCodec = GetEncoderInfo("image/jpeg");
Encoder jpegEncoder = Encoder.Quality;
EncoderParameters jpegEncoderParameters = new EncoderParameters(1);
EncoderParameter jpegEncoderQuality = new EncoderParameter(jpegEncoder,
jpegQuality);
jpegEncoderParameters.Param[0] = jpegEncoderQuality;string thumbnailPath;
// some path to save your JPEG to
thumbnail.Save(thumbnailPath, jpegCodec, jpegEncoderParameters);

"Miro" <m... at (no spam) beero.com> wrote in message

news:uY7vThxXKHA.3696 at (no spam) TK2MSFTNGP02.phx.gbl...



I found this link to create a thumbnail image.
http://forums.asp.net/t/739822.aspx

But the thumbnail image looks grainy.
If I take the same image, resample it in corel photopaint at 72dpi, the
image is nice and small and not grainy at all ( sharp ).

I was wondering if there is anything else that can be done to a jpg as you
are compressing it down to a smaller jpg, so you do not end up with a
grainy image.

Thanks,

Miro

' Prepare for a controlled-quality JPEG
Dim jpegCodec As exportImageCodecInfo = GetEncoderInfo("image/jpeg")
Dim jpegEncoder As Encoder = Encoder.Quality
Dim jpegEncoderParameters As New EncoderParameters(1)
Dim jpegEncoderQuality As New EncoderParameter(jpegEncoder,
jpegQuality)
jpegEncoderParameters.Param(0) = jpegEncoderQuality
Dim thumbnailPath As String
' some path to save your JPEG to
thumbnail.Save(thumbnailPath, jpegCodec, jpegEncoderParameters)
 
Miro...
Posted: Fri Nov 06, 2009 3:06 pm
Guest
I found this - but I cant seem to convert it to vb.

// Prepare for a controlled-quality JPEG
exportImageCodecInfo jpegCodec = GetEncoderInfo("image/jpeg");
Encoder jpegEncoder = Encoder.Quality;
EncoderParameters jpegEncoderParameters = new EncoderParameters(1);
EncoderParameter jpegEncoderQuality = new EncoderParameter(jpegEncoder,
jpegQuality);
jpegEncoderParameters.Param[0] = jpegEncoderQuality;string thumbnailPath;
// some path to save your JPEG to
thumbnail.Save(thumbnailPath, jpegCodec, jpegEncoderParameters);



"Miro" <miro at (no spam) beero.com> wrote in message
news:uY7vThxXKHA.3696 at (no spam) TK2MSFTNGP02.phx.gbl...
Quote:
I found this link to create a thumbnail image.
http://forums.asp.net/t/739822.aspx

But the thumbnail image looks grainy.
If I take the same image, resample it in corel photopaint at 72dpi, the
image is nice and small and not grainy at all ( sharp ).

I was wondering if there is anything else that can be done to a jpg as you
are compressing it down to a smaller jpg, so you do not end up with a
grainy image.

Thanks,

Miro
 
Miro...
Posted: Sat Nov 07, 2009 12:00 am
Guest
Thanks Alexy,

this got me on the right track but my image is still more grainy than if I
do it in something like corel photopaint.

Here is my code below. Perhaps I have a logical error somehwere ?
Take note of the 1000L ...if I put 100L or anything higher it does not get
better, but a value of 0 is really really grainy...so I was hoping this was
some kind of a weird calculated value.


Private Sub generateThumbnail(ByVal filepath As String, ByVal FileName
As String)

'Create a new Bitmap Image loading from location of origional file
'Dim bm As Bitmap = System.Drawing.Image.FromFile(filepath &
FileName)
Dim jpg As System.Drawing.Image =
System.Drawing.Image.FromFile(filepath & FileName)

'Declare Thumbnails Height and Width
Dim newWidth As Integer = 125
'Dim newHeight As Integer = (newWidth / bm.Width) * bm.Height
Dim newHeight As Integer = (newWidth / jpg.Width) * jpg.Height
Dim resizedBMP As Bitmap = New Bitmap(jpg, newWidth, newHeight)



' Prepare for a controlled-quality JPEG
Dim jpegCodec As ImageCodecInfo = GetEncoderInfo("image/jpeg")
Dim jpegEncoder As Encoder = Encoder.Quality
Dim jpegEncoderParameters As New EncoderParameters(1)
Dim jpegEncoderQuality As New EncoderParameter(jpegEncoder, 1000L)
jpegEncoderParameters.Param(0) = jpegEncoderQuality
'Dim thumbnailPath As String
' some path to save your JPEG to
Dim newStrFileName As String = filepath & "ThumbNails/" & FileName
resizedBMP.Save(newStrFileName, jpegCodec, jpegEncoderParameters)
End Sub

Private Function GetEncoderInfo(ByVal mimeType As String) _
As ImageCodecInfo
Dim j As Integer
Dim encoders As ImageCodecInfo()
encoders = ImageCodecInfo.GetImageEncoders()
For j = 0 To encoders.Length
If encoders(j).MimeType = mimeType Then
Return encoders(j)
End If
Next j
Return Nothing
End Function


Miro

"Alexey Smirnov" <alexey.smirnov at (no spam) gmail.com> wrote in message
news:7d5661af-9947-45df-b21e-cea5379806b9 at (no spam) d5g2000yqm.googlegroups.com...
On Nov 6, 9:06 pm, "Miro" <m... at (no spam) beero.com> wrote:
Quote:
I found this - but I cant seem to convert it to vb.

// Prepare for a controlled-quality JPEG
exportImageCodecInfo jpegCodec = GetEncoderInfo("image/jpeg");
Encoder jpegEncoder = Encoder.Quality;
EncoderParameters jpegEncoderParameters = new EncoderParameters(1);
EncoderParameter jpegEncoderQuality = new EncoderParameter(jpegEncoder,
jpegQuality);
jpegEncoderParameters.Param[0] = jpegEncoderQuality;string thumbnailPath;
// some path to save your JPEG to
thumbnail.Save(thumbnailPath, jpegCodec, jpegEncoderParameters);

"Miro" <m... at (no spam) beero.com> wrote in message

news:uY7vThxXKHA.3696 at (no spam) TK2MSFTNGP02.phx.gbl...



I found this link to create a thumbnail image.
http://forums.asp.net/t/739822.aspx

But the thumbnail image looks grainy.
If I take the same image, resample it in corel photopaint at 72dpi, the
image is nice and small and not grainy at all ( sharp ).

I was wondering if there is anything else that can be done to a jpg as
you
are compressing it down to a smaller jpg, so you do not end up with a
grainy image.

Thanks,

Miro

' Prepare for a controlled-quality JPEG
Dim jpegCodec As exportImageCodecInfo = GetEncoderInfo("image/jpeg")
Dim jpegEncoder As Encoder = Encoder.Quality
Dim jpegEncoderParameters As New EncoderParameters(1)
Dim jpegEncoderQuality As New EncoderParameter(jpegEncoder,
jpegQuality)
jpegEncoderParameters.Param(0) = jpegEncoderQuality
Dim thumbnailPath As String
' some path to save your JPEG to
thumbnail.Save(thumbnailPath, jpegCodec, jpegEncoderParameters)
 
Miro...
Posted: Sat Nov 07, 2009 12:10 am
Guest
Rewrote it a bit...but still grainy - found some differnet code- hoping that
would work.

Dim bm As Bitmap = System.Drawing.Image.FromFile(filepath & FileName)
Dim newWidth As Integer = 125
Dim newHeight As Integer = (newWidth / bm.Width) * bm.Height
Dim resizedBMP As Bitmap = New Bitmap(bm, newWidth, newHeight)


Dim info As ImageCodecInfo = ImageCodecInfo.GetImageEncoders(1)
Dim Params As EncoderParameters = New EncoderParameters(1)
Params.Param(0) = New
EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L)
Dim newStrFileName As String = filepath & "ThumbNails/" & FileName
resizedBMP.Save(newStrFileName, info, Params)


"Miro" <miro at (no spam) beero.com> wrote in message
news:Op9GLd2XKHA.5368 at (no spam) TK2MSFTNGP02.phx.gbl...
Quote:
Thanks Alexy,

this got me on the right track but my image is still more grainy than if I
do it in something like corel photopaint.

Here is my code below. Perhaps I have a logical error somehwere ?
Take note of the 1000L ...if I put 100L or anything higher it does not get
better, but a value of 0 is really really grainy...so I was hoping this
was some kind of a weird calculated value.


Private Sub generateThumbnail(ByVal filepath As String, ByVal FileName
As String)

'Create a new Bitmap Image loading from location of origional file
'Dim bm As Bitmap = System.Drawing.Image.FromFile(filepath &
FileName)
Dim jpg As System.Drawing.Image =
System.Drawing.Image.FromFile(filepath & FileName)

'Declare Thumbnails Height and Width
Dim newWidth As Integer = 125
'Dim newHeight As Integer = (newWidth / bm.Width) * bm.Height
Dim newHeight As Integer = (newWidth / jpg.Width) * jpg.Height
Dim resizedBMP As Bitmap = New Bitmap(jpg, newWidth, newHeight)



' Prepare for a controlled-quality JPEG
Dim jpegCodec As ImageCodecInfo = GetEncoderInfo("image/jpeg")
Dim jpegEncoder As Encoder = Encoder.Quality
Dim jpegEncoderParameters As New EncoderParameters(1)
Dim jpegEncoderQuality As New EncoderParameter(jpegEncoder, 1000L)
jpegEncoderParameters.Param(0) = jpegEncoderQuality
'Dim thumbnailPath As String
' some path to save your JPEG to
Dim newStrFileName As String = filepath & "ThumbNails/" & FileName
resizedBMP.Save(newStrFileName, jpegCodec, jpegEncoderParameters)
End Sub

Private Function GetEncoderInfo(ByVal mimeType As String) _
As ImageCodecInfo
Dim j As Integer
Dim encoders As ImageCodecInfo()
encoders = ImageCodecInfo.GetImageEncoders()
For j = 0 To encoders.Length
If encoders(j).MimeType = mimeType Then
Return encoders(j)
End If
Next j
Return Nothing
End Function


Miro

"Alexey Smirnov" <alexey.smirnov at (no spam) gmail.com> wrote in message
news:7d5661af-9947-45df-b21e-cea5379806b9 at (no spam) d5g2000yqm.googlegroups.com...
On Nov 6, 9:06 pm, "Miro" <m... at (no spam) beero.com> wrote:
I found this - but I cant seem to convert it to vb.

// Prepare for a controlled-quality JPEG
exportImageCodecInfo jpegCodec = GetEncoderInfo("image/jpeg");
Encoder jpegEncoder = Encoder.Quality;
EncoderParameters jpegEncoderParameters = new EncoderParameters(1);
EncoderParameter jpegEncoderQuality = new EncoderParameter(jpegEncoder,
jpegQuality);
jpegEncoderParameters.Param[0] = jpegEncoderQuality;string thumbnailPath;
// some path to save your JPEG to
thumbnail.Save(thumbnailPath, jpegCodec, jpegEncoderParameters);

"Miro" <m... at (no spam) beero.com> wrote in message

news:uY7vThxXKHA.3696 at (no spam) TK2MSFTNGP02.phx.gbl...



I found this link to create a thumbnail image.
http://forums.asp.net/t/739822.aspx

But the thumbnail image looks grainy.
If I take the same image, resample it in corel photopaint at 72dpi, the
image is nice and small and not grainy at all ( sharp ).

I was wondering if there is anything else that can be done to a jpg as
you
are compressing it down to a smaller jpg, so you do not end up with a
grainy image.

Thanks,

Miro

' Prepare for a controlled-quality JPEG
Dim jpegCodec As exportImageCodecInfo = GetEncoderInfo("image/jpeg")
Dim jpegEncoder As Encoder = Encoder.Quality
Dim jpegEncoderParameters As New EncoderParameters(1)
Dim jpegEncoderQuality As New EncoderParameter(jpegEncoder,
jpegQuality)
jpegEncoderParameters.Param(0) = jpegEncoderQuality
Dim thumbnailPath As String
' some path to save your JPEG to
thumbnail.Save(thumbnailPath, jpegCodec, jpegEncoderParameters)
 
Herfried K. Wagner [MVP]...
Posted: Sat Nov 07, 2009 6:45 pm
Guest
Alexey Smirnov schrieb:
Quote:
On Nov 6, 9:06 pm, "Miro" <m... at (no spam) beero.com> wrote:
I found this - but I cant seem to convert it to vb.

I assume that commercial products contain more evolved compression
algorithms than the .NET Framework's default JPEG encoder. Adobe
Photoshop, for example, provides a better quality/file size ratio than
the .NET Framework's JPEG encoder too. The encoder used by GIMP is
worse than Photoshop's encoder.

Depending on the type of images you may want to consider using the PNG
format instead of JPEG (it's more suitable for screenshots, for example).

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>
 
 
Page 1 of 1    
All times are GMT - 5 Hours
The time now is Mon Dec 07, 2009 5:08 pm