Всем привет!
Есть пример создания картинки размером 32x32.
После увеличения оригинала функцией _GDIPlus_ImageResize в 10 раз,
картинка получается вся смазанная интерполяцией.
Как ее можно отключить? Требуется увеличить изображение, как это делает допустим тот же просмотр изображений Windows.
Вот открытая оригинальное изображение 32x32, просто увеличенное колесиком мыши. Четкие огромные пиксели)
Как это можно повторить (увеличить без интерполяции)?
Есть пример создания картинки размером 32x32.
Код:
#include <GDIPlus.au3>
_GDIPlus_Startup()
; Задать размер картинки.
Global $iWidth = 32, $iHeight = 32
; Массив содержащий данные картинки, заполненный случайным образом.
Global $aPic[$iWidth * $iHeight]
For $i = 0 To UBound($aPic) - 1
;$aPic[$i] = Random(0, 0xFFFFFF, 1)
$aPic[$i] = BitOR(0xFF000000, Random(0, 0xFFFFFF, 1))
Next
; Создать структуру UINT(4 байта) с именем PIC размером высота * ширина картинки.
$tStruct = DllStructCreate("uint PIC[" & $iWidth * $iHeight & "]")
For $i = 0 To UBound($aPic) - 1
DllStructSetData($tStruct, "PIC", $aPic[$i], $i + 1)
Next
; Создать картинку из структуры.
$hBitmap = _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight, $GDIP_PXF32ARGB, $iWidth * 4, DllStructGetPtr($tStruct, "PIC"))
; Сохранить в файл.
_GDIPlus_ImageSaveToFile($hBitmap, "pic.bmp")
Local $hBitmap_Scaled = _GDIPlus_ImageResize($hBitmap, 320, 320) ;resize image
; Сохранить в файл.
_GDIPlus_ImageSaveToFile($hBitmap_Scaled, "pic2.bmp")
; Удалить ресурсы GDI+.
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_ImageDispose($hBitmap_Scaled)
_GDIPlus_Shutdown()
После увеличения оригинала функцией _GDIPlus_ImageResize в 10 раз,
картинка получается вся смазанная интерполяцией.
Как ее можно отключить? Требуется увеличить изображение, как это делает допустим тот же просмотр изображений Windows.
Вот открытая оригинальное изображение 32x32, просто увеличенное колесиком мыши. Четкие огромные пиксели)
Как это можно повторить (увеличить без интерполяции)?