我一直在尝试从script-fu切换到python-fu,我无法弄清楚我应该为“image”参数传递什么。在script-fu中它只是一个整数,但是当我将相同的整数放入python-fu时,它只是说它是错误的类型。与字符串和花车相同......我应该放在这里什么?文档只是说它所采用的参数是“IMAGE”,但这是什么意思?我在哪里找到它?我怎么得到它?
$products = Product::leftjoin('reviews','products.id','=','reviews.productID')
->select('products.*',DB::raw("AVG(rating) as 'productRating'"))
->where('products.status','=',"enable")
->whereIn('categoryID',$categoriesID)
->whereBetween('productSellingPrice',$priceArray)
->groupBy('products.id');
if(count($brands) > 0)
{
$products->whereIn('brandID',$brands);
}
if(count($ratingArray) > 0)
{
// assume $ratingArray = [$min, $max];
list($ratingMin, $ratingMax) = $ratingArray;
$products->having('productRating', '>', $ratingMin);
$products->having('productRating', '<', $ratingMax);
}
$items = $products->get();
答案 0 :(得分:6)
你传递一个Image对象 - 不使用script-fu中只有整数的大多数参数 - 在它们的位置,你必须传递一个实际的对象引用。你怎么得到那些?
只是所有的PDB函数和方法都已经返回这些对象 - 而不是它们的数字ID,就像在script-fu中一样。
因此,对于Image,您可以获取python-fu函数的Image作为参数,或者调用pdb.gimp_image_new。
如果您经常在交互式控制台上进行测试,则必须获取对活动图像的引用。在那种情况下,打电话
gimp.image_list()
获取当前打开图像的Python列表 - 此列表中索引0处的图像是屏幕上最右侧(最新)的打开图像 - 只需执行image = gimp.image_list()[0]
即可获得对它的引用
当你在这里时,用dir(image)
探索图像对象你会发现它填充了属性和方法,这些属性和方法是其他难以输入的pdb调用的便捷快捷方式。例如,image.layers
为您提供了一个Python列表,其中引用了图像上的所有图层(作为实际的图层对象,而不是其ID),image.width
为您提供宽度,并调用img.new_layer()
创建一个新图层并将其添加到图像中 - 此调用具有可选参数以指定其名称,宽度,高度等。
作为最后的手段,gimp
模块上有保留方法可以将数字ID转换为实际对象:'_id2display', '_id2drawable', '_id2image', '_id2vectors'
- 您不需要使用这些方法。如果您发现自己需要在脚本体中使用它们,由于某些pdb函数返回ID而不是对象,请填写有关GIMP的bugzilla的错误报告。