Nasıl bmp jpg içinde vb6 için dönüştürmek için?Nasıl bmp jpg jpg dönüştürmek için
cevap
onay bu link
'Convert BMP to JPG with this code. (Note: Requires vic32.dll available from
'http://www.catenary.com/)
'PLACE ALL THIS IN A NEW MODULE
Declare Function bmpinfo Lib "VIC32.DLL" (ByVal Fname As String, bdat As BITMAPINFOHEADER) As Long
Declare Function allocimage Lib "VIC32.DLL" (image As imgdes, ByVal wid As Long, ByVal leng As Long, ByVal BPPixel As Long) As Long
Declare Function loadbmp Lib "VIC32.DLL" (ByVal Fname As String, desimg As imgdes) As Long
Declare Sub freeimage Lib "VIC32.DLL" (image As imgdes)
Declare Function convert1bitto8bit Lib "VIC32.DLL" (srcimg As imgdes, desimg As imgdes) As Long
Declare Sub copyimgdes Lib "VIC32.DLL" (srcimg As imgdes, desimg As imgdes)
Declare Function savejpg Lib "VIC32.DLL" (ByVal Fname As String, srcimg As imgdes, ByVal quality As Long) As Long
' Image descriptor
Type imgdes
ibuff As Long
stx As Long
sty As Long
endx As Long
endy As Long
buffwidth As Long
palette As Long
colors As Long
imgtype As Long
bmh As Long
hBitmap As Long
End Type
Type BITMAPINFOHEADER
biSize As Long
biWidth As Long
biHeight As Long
biPlanes As Integer
biBitCount As Integer
biCompression As Long
biSizeImage As Long
biXPelsPerMeter As Long
biYPelsPerMeter As Long
biClrUsed As Long
biClrImportant As Long
End Type
'PLACE THIS IN YOUR FORM DECLERATIONS
Private Sub ConvertToJPEG(bmp_fname As String, jpg_fname As String, Optional quality As Long)
Dim tmpimage As imgdes ' Image descriptors
Dim tmp2image As imgdes
Dim rcode As Long
'Dim quality As Long
Dim vbitcount As Long
Dim bdat As BITMAPINFOHEADER ' Reserve space for BMP struct
'Dim bmp_fname As String
'Dim jpg_fname As String
'bmp_fname = "test.bmp"
'jpg_fname = "test.jpg"
If quality = 0 Then quality = 75
' Get info on the file we're to load
rcode = bmpinfo(bmp_fname, bdat)
If (rcode <> NO_ERROR) Then
msgbox "error: Unable to get file info"
Exit Sub
End If
vbitcount = bdat.biBitCount
If (vbitcount >= 16) Then ' 16-, 24-, or 32-bit image is loaded into 24-bit buffer
vbitcount = 24
End If
' Allocate space for an image
rcode = allocimage(tmpimage, bdat.biWidth, bdat.biHeight, vbitcount)
If (rcode <> NO_ERROR) Then
msgbox "error: Not enough memory"
Exit Sub
End If
' Load image
rcode = loadbmp(bmp_fname, tmpimage)
If (rcode <> NO_ERROR) Then
freeimage tmpimage ' Free image on error
msgbox "error: Cannot load file"
Exit Sub
End If
If (vbitcount = 1) Then ' If we loaded a 1-bit image, convert to 8-bit grayscale
' because jpeg only supports 8-bit grayscale or 24-bit color images
rcode = allocimage(tmp2image, bdat.biWidth, bdat.biHeight, 8)
If (rcode = NO_ERROR) Then
rcode = convert1bitto8bit(tmpimage, tmp2image)
freeimage tmpimage ' Replace 1-bit image with grayscale image
copyimgdes tmp2image, tmpimage
End If
End If
' Save image
rcode = savejpg(jpg_fname, tmpimage, quality)
freeimage tmpimage
Kill bmp_fname
msgbox "picture saved: " & jpg_fname
End Sub
VIC32.DLL yalnızca yaklaşık 250 kb'dir. Victor Library fiyatı, dağıtım için hiçbir telif hakkı olmaksızın sadece 499 $ 'dır. Dosyalar ağ paylaşımında olduğunda işe yaramıyor –
From here: Diğer biçimlerde dosya kaydetmek için mevcut olan çeşitli üçüncü taraf denetimleri bu çoğu kez 'koltuk başına' kabul edilemez sahip lisans politikaları ve inanılmaz olabilir, orada iken
pahalı. Bu makalede, VB resimleri kaydetmek için ücretsiz bir JPEG DLL kitaplığı nasıl kullanılacağını gösterir. PS
: sadece jpg görüntüleri kaydetmek için VIC32 gibi bir kütüphane için 500 $ ödeme çok fazla görünüyor ...
ImageMagick ile Gemi bunu ve bunu gibi bir şey
shell "convert.exe image.bmp image.jpg"
Peki, XP SP1 ve sonrası için sağlanan aracı kullanabilirsiniz: WIA 2.0 Kitaplığı. Eğer gerekir XP için
Option Explicit
'
'Requires a reference to:
' Microsoft Windows Image Acquisition Library v2.0
'
Private Const TIFF_LZW As String = "LZW"
Private Const TIFF_RLE As String = "RLE" 'Pixel Depth must be 1.
Private Const TIFF_CCITT3 As String = "CCITT3" 'Pixel Depth must be 1.
Private Const TIFF_CCITT4 As String = "CCITT4" 'Pixel Depth must be 1.
Private Const TIFF_Uncompressed As String = "Uncompressed"
Private Sub ImgConvert(_
ByVal InFileName As String, _
ByVal OutFileName As String, _
ByVal OutFormat As String, _
Optional ByVal Quality As Integer = 100, _
Optional ByVal Compression As String = TIFF_LZW)
Dim Img As WIA.ImageFile
Dim ImgProc As WIA.ImageProcess
Set Img = New WIA.ImageFile
Img.LoadFile InFileName
Set ImgProc = New WIA.ImageProcess
With ImgProc.Filters
.Add ImgProc.FilterInfos("Convert").FilterID
.Item(1).Properties("FormatID").Value = OutFormat
If OutFormat = wiaFormatJPEG Then
.Item(1).Properties("Quality").Value = Quality
ElseIf OutFormat = wiaFormatTIFF Then
.Item(1).Properties("Compression").Value = Compression
End If
End With
Set Img = ImgProc.Apply(Img)
On Error Resume Next
Kill OutFileName
On Error GoTo 0
Img.SaveFile OutFileName
End Sub
Private Sub Main()
ImgConvert "sample.bmp", "sample.jpg", wiaFormatJPEG, 70
ImgConvert "sample.bmp", "sample.gif", wiaFormatGIF
ImgConvert "sample.bmp", "sample.png", wiaFormatPNG
ImgConvert "sample.bmp", "sample.tif", wiaFormatTIFF, , TIFF_Uncompressed
MsgBox "Complete"
End Sub
dağıtmak için: Windows® Image Acquisition Automation Library v2.0 Tool: Image acquisition and manipulation component for VB and scripting
sadece burada hatlarının yaklaşık yarısını dışarı şerit olabilir JPG BMP dönüştürmek için.
Daha sonra herhangi bir şey için zaten işletim sisteminin bir parçası.
XP'de DLL manuel olarak kaydedilmeli, doğru mu? Kayıt için başka bir alternatif var mı? – Rick
@Rick Bunu bir soru olarak yayınlayabilirsiniz –
SDK'nin ZIP arşivinden aldığınız zaman WIAAut.dll dosyasını kopyalamaya ve kaydettirmeye ihtiyacınız vardır.Ancak yeniden dağıtım için herhangi bir kurulum/yükleyici teknolojisini kullanmak üzere kullanacaksınız, bu da herhangi bir ActiveX kütüphanesi gibi yükleme ve kaydetme aracı almalıdır. – Bob77
Sadece!
1) Bu EN KISA yöntemdir:
SavePicture(LoadPicture("c:\YourFile.BMP"),"c:\YourFile.JPG")
2) herhangi bir biçimde (ile/sıkıştırma olmadan) dönüştürmek istiyorsanız, ben FFMpeg öneriyoruz.
Shell("ffmpeg.exe -i YourFile.bmp -q <qualityNumber*> ConverTo.Any")
* write ffmpeg /? cmd cinsinden kullanımın bilinmesi
Teknik olarak uzantıyı değiştirirken, aslında dosyayı .jpg'ye dönüştürmez. Sadece bir yeniden adlandırılmış bitmap (buna göre: http://msdn.microsoft.com/en-us/library/aa445827%28v=vs.60%29.aspx). – nerdherd
@nerdherd, anlıyorum. Ama "dönüştürme" dedi, sıkıştırma ile dönüştürmek değil;) – Searush
Sadece diğer okuyucuların farkında olduğundan emin olmak istedim. Daha kullanışlı dönüşüm için alternatif bir seçenek eklemek için +1. – nerdherd
- 1. jpg 'ye jpg dosyasını nasıl kurabilirim java
- 2. .jpg dosyasını .eps biçimine dönüştürmek için
- 3. .jpg resmindeki .jpg görüntüsünü nasıl görüntülerim? Jpg bağlantısı
- 4. Jpg, 24 bit sıkıştırılmamış BMP 4.0'a nasıl dönüştürülür?
- 5. jpg resmi, PHP kullanarak gif, png & bmp biçimine dönüştürme
- 6. Nasıl javascript Filereader .png biçimini .jpg biçimine dönüştürmek nasıl?
- 7. Python'da jpg dosyası nasıl görüntülenir?
- 8. Latex'te jpg resmi nasıl eklenir
- 9. Bayt dizisini PNG/JPG
- 10. Jpg olarak görüntü kaydedilen resim jpg pembe tonlu
- 11. Google PageSpeed & ImageMagick JPG sıkıştırma
- 12. ColdFusion IsImageFile jpg dosyası için başarısız olur
- 13. petek üzerinde jpg görüntülemek için niyeti yok?
- 14. Ataş: Jpeg/jpg kalitesini belirtin
- 15. Download png/jpg with R
- 16. .htaccess ile dinamik jpg url'ler
- 17. paperclip - tiff resimlerinin jpg veya png'ye dönüştürülmesi
- 18. PyQt4 jpeg/jpg desteklenmeyen resim biçimi
- 19. Java ile jpg görüntüsünü nasıl düzenleyebilirim?
- 20. jpg isabetleri sayfa görüntülemede awstats olarak nasıl izlenir 7.0
- 21. Her hücre için excel'de Image (Jpg, Jpeg) dosyasını nasıl kaydederim?
- 22. Swift'de Dropbox'a bir jpg yükleyin SwiftyJson
- 23. PDF'yi JPG (s) 'ye İhracat C#
- 24. python ile jpg içindeki rgb değerlerini düzenleme
- 25. JPG görüntüsünü gri tonlamadan RGB'ye dönüştürün imagemagick
- 26. PDFsharp, PDF biçiminde bir JPG hatası görüntüleniyor
- 27. GLKTextureLoader, "Yeni iPad" 'te jpg yüklemiyor
- 28. Android, jpg veya png görünümüne kaydet
- 29. Neden PNG kullanıyor ve JPG kullanmamalıyım?
- 30. jpg resminden Java extract exif (meta veriler)
Tam olarak bir kopya değil, çünkü BMP'den JPG'ye sormuşsunuzdur, ancak [GIF'i JPG veya TIF'e dönüştürme] ile ilgili olarak bu soruyla da ilgilenebilirsiniz (http://stackoverflow.com/ sorular/1333901/visual-basic-6-image-conversion-from-gif-to-jpg-veya-tif) – MarkJ
Bkz. http://www.vbaccelerator.com/home/VB/Code/vbMedia/Saving_Pictures_to_JPG/Using_Intel_JPG_Library/ Söz konusu makale. –