39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
'''
|
|
Copyright (C) 2020 - 2022 Akaneyu
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
'''
|
|
|
|
import bpy
|
|
import numpy as np
|
|
|
|
def read_pixels_from_image(img):
|
|
width, height = img.size[0], img.size[1]
|
|
|
|
if bpy.app.version >= (2, 83, 0):
|
|
pixels = np.empty(len(img.pixels), dtype=np.float32);
|
|
img.pixels.foreach_get(pixels)
|
|
return np.reshape(pixels, (height, width, 4))
|
|
else:
|
|
return np.reshape(img.pixels[:], (height, width, 4))
|
|
|
|
def write_pixels_to_image(img, pixels, update_preview=True):
|
|
if bpy.app.version >= (2, 83, 0):
|
|
img.pixels.foreach_set(np.reshape(pixels, -1))
|
|
else:
|
|
img.pixels = np.reshape(pixels, -1)
|
|
|
|
if update_preview and img.preview:
|
|
img.preview.reload()
|